Skip to content

Instantly share code, notes, and snippets.

@codazzo
codazzo / useObject.ts
Created April 23, 2021 10:05
useObject object memoization hook
// this hook memoizes an object so you don't have to write e.g.
// useMemo(() => ({ a, b }), [a, b])
export function useObject<T extends Record<string, unknown>>(object: T) {
const deps = Object.values(object);
return useMemo(() => object, deps); // eslint-disable-line react-hooks/exhaustive-deps
}
@codazzo
codazzo / keybase.md
Created February 14, 2017 12:45
keybase.md

Keybase proof

I hereby claim:

  • I am codazzo on github.
  • I am codazzo (https://keybase.io/codazzo) on keybase.
  • I have a public key whose fingerprint is 7B11 BF4C 78A3 3A0E 05A4 09F0 BD1E 283E 8DFF 2840

To claim this, I am signing this object:

@codazzo
codazzo / index.js
Created January 7, 2016 08:14
requirebin sketch
// require() some stuff from npm (like you were using browserify)
// and then hit Run Code to run it on the right
var chai = require('chai');
var assert = chai.assert;
assert.match('abcdadaefg', /dada/);
assert.match('abcdadaefg', /nope/);
@codazzo
codazzo / gist:5dd7310b8d2e612b59e7
Last active August 29, 2015 14:07
Possible memory leak in vega headless renderer
//var heapdump = require('heapdump');
var util = require('util');
var vg = require('vega');
var d3 = require('d3');
var spec = {
"width": 400,
"height": 200,
"padding": {"top": 10, "left": 30, "bottom": 30, "right": 10},
"data": [
@codazzo
codazzo / index.js
Created September 24, 2014 13:59
requirebin sketch
var later = require('later');
var moment = require('moment');
var startDate = '2013-11-23T00:00:00.000Z';
var startMoment = moment(startDate);
//var startMoment = moment().add(1, 'days');
function scheduleBuilder() {
return later.parse.recur().on(8).hour().on(0).minute().on(0).second();
}
@codazzo
codazzo / index.js
Created August 22, 2014 14:28
requirebin sketch
var Q = require('q');
//resolved promise
var threePromise = Q(3);
threePromise.done(); //throw an error if the promise is rejected
threePromise.then(function(value){
console.log(value);
});
@codazzo
codazzo / index.js
Created July 24, 2014 10:42
requirebin sketch
var later = require('later');
var now = new Date();
var hoursUTC = now.getUTCHours();
// The schedule is set to run at X:00AM UTC every day where X is now.getUTCHours()
var theschedule = later.parse.recur().on(hoursUTC).hour();
console.log('now (UTC): ', now.toString());
@codazzo
codazzo / index.js
Created June 16, 2014 08:52
requirebin sketch
var later = require('later');
var parsedCron = later.parse.cron('* * * * *');
var laterDate = later.schedule(parsedCron).next();
console.log(laterDate);
console.log('Timezone offset in mins:' + laterDate.getTimezoneOffset());
@codazzo
codazzo / index.js
Created April 23, 2014 14:11
requirebin sketch
var Emitter = require('events').EventEmitter;
var obj = new Emitter();
function addListener(){
obj.on('ok', function logOk(){
obj.removeListener('ok', logOk);
console.log('ok');
});
}
@codazzo
codazzo / index.js
Created March 19, 2014 17:21
requirebin sketch
var Q = require('q');
var a = Q.promise(function(resolve, reject){
throw new Error('a fail!');
}).finally(console.error);
var b = Q.promise(function(resolve, reject){
throw new Error('b fail!');
}).then(console.error, console.error);