Skip to content

Instantly share code, notes, and snippets.

View getify's full-sized avatar
💭
Just coding

Kyle Simpson getify

💭
Just coding
View GitHub Profile
@getify
getify / 1-click-to-load.js
Last active December 22, 2021 06:44 — forked from cowboyd/1-click-to-load.js
Handle a stream of clicks by canceling the latest one
// FORKED FROM: https://gist.github.com/cowboyd/74c0fd9e7aa3cccaeda0b84604c0136a
//
// using CAF instead of Effection.
/**
* Implements an operation to fetch the data as described in https://twitter.com/BenLesh/status/1455597411385098242
* The "winner" is unambiguous. It is the request corresponding to the latest click, guaranteed.
* Other important things to note:
*
* 1. The HTTP request is cancelled every time along with its containing task
// Doesn't throw an error, but doesn't return an object
const getObj = () => { a: 1 };
console.log(getObj()); //=> val 'undefined' : void
// Reason: It looks like an arrow function returning an object, but it isn't.
// It's an arrow function with a function body (containing a labeled
// statement) that returns nothing.
const getObj = () =>
{ // <- Start function body
a: // <- A label to use when break/continue; e.g. break a;
//COMPILER: Scope, can you register an `Animal` and a `dog`?
//SCOPE: Sure.
var Animal, dog;
//ENGINE: Scope, do you have `Animal` available?
//SCOPE: Sure, here it is.
//ENGINE: I'm assigning a reference to the anonymous function to `Animal`
//COMPILER: I see a function expression with a parameter called `inLove`
//COMPILER: Scope, can you register `inLove` inside this function scope?
@getify
getify / async.js
Last active January 3, 2016 19:29 — forked from JedWatson/async.js
Example usage of the new asynquence.map() contrib plugin to update an array against a redis cache
var transform = function(contents, doneTransform) {
var authExpiry = 60 * 60 * 1000,
authId = uuid.v4(),
authKey = 'file:auth:' + authId;
redis.client.set(authKey, JSON.stringify({
userId: req.user.id
}));
redis.client.expire(authKey, authExpiry);
@getify
getify / async.js
Last active January 3, 2016 18:29 — forked from JedWatson/async.js
Example usage of asynquence.gate() to update an array against a redis cache
// This function takes a contents object with a files array.
// The goal is to cache each file details in redis then replace
// the file's path with a secure, obscured url.
// Finally the contents object is returned with the updated array
// in place of the old one.
// async = require('async')
// uuid = require('node-uuid')
// redis.client = require('node-redis').createClient()
@getify
getify / test.js
Created April 29, 2013 20:14 — forked from furf/test.js
console.log('test');
@getify
getify / 1.js
Last active December 14, 2015 02:39 — forked from padolsey/1.js
var x = '/x/';
/x/==x
@getify
getify / type-declarations.js
Created December 16, 2012 02:27 — forked from nzakas/type-declarations.js
"make3" implementation
/*
* Forked Zakas' attempt at a `type()` "class" maker/extender utility.
* This variation just makes and links objects, without the unnecessity
* of using constructor functions. You can however specify `init()`
* functions to use upon creation of the object. NOTE: because there are
* no more constructor functions, comparisons with `instanceof` and
* `constructor` no longer apply.
*/
function make(delegateTo, declaration) {
@getify
getify / type-declarations.js
Created December 14, 2012 22:36 — forked from nzakas/type-declarations.js
"type2" implementation
/*
* Forked Zakas' attempt at a `type()` "class" maker/extender utility.
* Mainly, this approach automatically calls a type's super-type (if any)
* `constructor` upon construction of the type, if you didn't specify
* a `constructor` for the type itself.
*/
function type(prototype, declaration) {
function mixin(receiver, supplier) {
if (Object.getOwnPropertyDescriptor) {
@getify
getify / gist:3189596
Created July 27, 2012 18:25 — forked from rexmac/gist:3189232
attempting to use jParser to extract dimensions of JPG image file
var fs = require("fs");
var jParser = require("jParser");
var eof = false;
fs.readFile("sample.jpg",function(err,data) {
if (!err) {
var view = new jDataView(data, undefined, undefined, false);
var parser = new jParser(view,{
// JPG