Skip to content

Instantly share code, notes, and snippets.

View damiancipolat's full-sized avatar
💭
Creating amazing things!

DamCipolat damiancipolat

💭
Creating amazing things!
View GitHub Profile
@damiancipolat
damiancipolat / flat.js
Created October 19, 2022 21:20
Flat a JS object
// Receive an
const flatArray = (key,list)=>{
let obj={};
list.forEach((item,i)=>{
obj[`${key}.${i}`]=item;
});
return obj;
@damiancipolat
damiancipolat / converter.js
Created October 4, 2022 02:36
Express JS - convert route list in tree
let route_list = {};
function print (path, layer) {
if (layer.route) {
layer.route.stack.forEach(print.bind(null, path.concat(split(layer.route.path))))
} else if (layer.name === 'router' && layer.handle.stack) {
layer.handle.stack.forEach(print.bind(null, path.concat(split(layer.regexp))))
} else if (layer.method) {
const pathRoute = `${layer.method.toUpperCase()} - ${path.concat(split(layer.regexp)).filter(Boolean).join('/')}`;
@damiancipolat
damiancipolat / hapi-tracing.js
Created August 18, 2022 03:14
A hapi js distributed tracing plugin
const cls = require('cls-hooked');
const { v4: uuidV4 } = require('uuid');
// generate a unique value for namespace
const name = 'settle-context';
const nsId = `${name}:${uuidV4()}`;
const ns = cls.createNamespace(nsId);
const correlationIdKey = 'x-correlation-id';
@damiancipolat
damiancipolat / hapi-request-id.js
Created August 12, 2022 01:49
Hapi JS plugin for inject request-id in request lifecycle.
import { v4 as uuidv4 } from 'uuid';
const register = (server, options) => {
server.ext({
type: 'onRequest',
method: (request, h) => {
request.id = request.headers['x-request-id']||uuidv4();
return h.continue;
}
});
@damiancipolat
damiancipolat / docker_build.sh
Created April 4, 2022 00:09
Docker api builder, exampe using bash to renew nodejs process container.
echo "Tageando version..."
sh ./tag.sh
echo "Borrando container..."
docker stop challenge-api-server
docker rm challenge-api-server
echo "Borrando imagen..."
docker rmi challenge-api
@damiancipolat
damiancipolat / tag.sh
Created April 4, 2022 00:04
Docker tagger using package.json version field.
#Extract project field name package.json
export PACKAGE_NAME="$(cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g')"
#Extract version field from package.json
export PACKAGE_VERSION="$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g')"
#Set the package tag name
export PACKAGE_TAG="$(echo ${PACKAGE_NAME}:${PACKAGE_VERSION} | tr -d ' ')"
@damiancipolat
damiancipolat / sql_remove_duplicates.sql
Created February 10, 2022 01:16
An sql example to remove duplicate fields in a table from by one column.
drop table testtb;
drop table test_duplicated;
drop table test_unique;
create temporary table testtb (
entity varchar(10) not null,
duplicate varchar(10) not null
);
insert into testtb
@damiancipolat
damiancipolat / sql_server_silent_install.bat
Last active November 30, 2021 15:48
SQL SERVER Instalación silenciosa
# Descargar el instalador desde aqui:https://www.microsoft.com/en-us/download/details.aspx?id=101064 bajar ".exe"
# Version SQL SERVER 2019 - EXPRESS
# Basado en esta web: https://silentinstallhq.com/microsoft-sql-server-2019-express-silent-install-how-to-guide
@echo off
echo "1) Creo directorio temporal..."
mkdir c:\crypton-install-tmp
echo "Ok"
echo "2) Extraigo instalador .exe..."
@damiancipolat
damiancipolat / linked_list_remove_nodes.js
Created October 18, 2021 23:16
En este ejercicio se debe borrarn de las listas vinculadas los valores que sean menores a 100 y retornarlo por consola.
const year = {
num: 2019,
month: {
num: 1,
avgDollarValue: 90,
month: {
num: 2,
avgDollarValue: 105,
month: {
num: 0,
@damiancipolat
damiancipolat / binaryTreeCount.ts
Created October 18, 2021 00:43
Cuenta hojas de un arbol binario
// Se espera que el resultado lo muestres en un console.log
const arbol = {
num: 25,
izq: {
num: 23,
izq: {
num: 10,
},
der: {
num: 80,