Skip to content

Instantly share code, notes, and snippets.

View szanata's full-sized avatar
🏠
Working from home

Stéfano Zanata szanata

🏠
Working from home
View GitHub Profile
@szanata
szanata / every.js
Last active August 29, 2018 10:56
Every (loop tool for node js)
module.exports = interval => {
let count = 0;
return {
do( fn ) {
return {
async times( amount ) {
const jobs = [];
await new Promise( ( resolve, reject ) => {
const loop = setInterval( async () => {
count++;
@szanata
szanata / opts.js
Created August 19, 2018 21:13
Syntax options
// Option one
// All setters
XYZ.title = 'My cool test';
XYZ.before = () => {
};
XYZ.do = () => {
@szanata
szanata / atomik_pipeline.js
Created August 9, 2018 19:04
Atomik Pipeline JS
const setSym = Symbol( 'operations' );
module.exports = class AtomikPipeline {
constructor( operationsSet ) {
this[setSym] = operationsSet;
}
async run( _param ) {
const rollback = [];
@szanata
szanata / test.js
Created March 9, 2018 01:54
JS: Which is faster?
p = new Promise((r) => {r()});
setImmediate(console.log, 'I1')
process.nextTick(() =>console.log('T1'));
p.then(() => console.log('P1'));
process.nextTick(() =>console.log('T2'));
// Output:
// T1
// T2
// P1
@szanata
szanata / get_json_p.js
Created September 26, 2017 18:39
Get jsonp
function serialize(obj, prefix) {
var props = [];
for (var p in obj){
if (obj.hasOwnProperty(p)) {
if (Object.prototype.toString.call(obj[p]) === '[object Object]'){
props.push(serialize(obj[p], (prefix ? prefix : '') + p + '.'));
}else{
props.push((prefix ? prefix : '') + encodeURIComponent(p) + '=' + encodeURIComponent(obj[p]));
}
}
@szanata
szanata / unflat.js
Created September 13, 2017 19:15
Unflat js object
function isObject(item) {
return (item && typeof item === 'object' && !Array.isArray(item));
}
function mergeDeep(target, ...sources) {
if (!sources.length) return target;
const source = sources.shift();
if (isObject(target) && isObject(source)) {
for (const key in source) {
@szanata
szanata / flat.js
Last active March 9, 2018 01:55
JS Flatten functions
// Ultra slim flat func
const flat = ( a=[] ) => a.reduce( ( a, v ) => a.concat( v.map ? flat(v) : v ), [] );
@szanata
szanata / cookie.js
Last active April 3, 2017 19:06
JS Cookie manager for front-end. Without jquery, angular, etc
@szanata
szanata / camelize.js
Created September 12, 2016 22:45
Camelize function for js
function camelize(val) {
return val.replace (/(?:^|[-_]|\s)(\w)/g, function (_, c, i) {
return i === 0 ? c.toLowerCase() : c.toUpperCase ();
})
}
camelize('I like to develop') === 'iLikeToDevelop'; // separate words
camelize('i_like_to_develop') === 'iLikeToDevelop'; // underscore case
camelize('ILikeToDevelop') === 'iLikeToDevelop'; // pascal case
camelize('i_like ToDevelop') === 'iLikeToDevelop'; // mixed
@szanata
szanata / checkbox_change.js
Created December 29, 2015 15:47
Angular trigger change for checkboxes on click.
App.directive('checkboxChange', function() {
return {
restrict: 'A',
require: '?ngModel',
scope:{
checkboxChange:'=checkboxChange'
},
link: function (scope, el, attrs, ngModel) {
console.log('jere')
el.on('click', function (){