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 / 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 / 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 / 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 / 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 / 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;