Skip to content

Instantly share code, notes, and snippets.

@simenbrekken
simenbrekken / stripe.js
Last active August 29, 2015 14:06
Stripe.js promise based async client loader
var Promise = require('bluebird');
var CLIENT_URL = 'https://js.stripe.com/v2/';
var PUBLISHABLE_KEY = '...';
var _promise;
function loadClient() {
// If we haven't started loading yet, create a promise
if (!_promise) {
@simenbrekken
simenbrekken / Agent.nut
Created September 8, 2014 18:56
SousPide
class Firebase {
url = null
headers = {
"Content-Type": "application/json"
}
constructor(url) {
this.url = url
}
@simenbrekken
simenbrekken / flux-server.js
Last active August 29, 2015 14:05
Flux Server Initialization
var categories = new Promise(function(resolve, reject) {
var onChange = function() {
CategoryStore.removeChangeListener('change', onChange)
resolve(CategoryStore.getAll())
}
CategoryStore.addChangeListener('change', onChange)
CategoryActions.loadAll()
})
@simenbrekken
simenbrekken / superagent.js
Created September 2, 2014 15:04
Jest Superagent Mock
/* global jest */
var superagent = jest.genMockFunction().mockReturnThis();
var Response = jest.genMockFunction().mockImplementation(function() {
this.status = 200;
this.ok = true;
});
Response.prototype.get = jest.genMockFunction();
@simenbrekken
simenbrekken / KeyboardShortcutsMixin.js
Created August 31, 2014 08:15
React Keyboard Shortcuts Mixin
'use strict';
var KEYS = {
enter: 13,
left: 37,
right: 39,
escape: 27,
backspace: 8,
comma: 188,
shift: 16,
@simenbrekken
simenbrekken / trailing-pattern.txt
Created August 26, 2014 08:25
Find trailing commas in JSON
\},\s+[\}\]]
@simenbrekken
simenbrekken / getAncestors.js
Last active August 29, 2015 14:05
Find ancestors by parent traversal
var lodash = require('lodash')
var getAncestors = function(node, nodes) {
var ancestors = []
var ancestor = node
while (ancestor) {
ancestors.unshift(ancestor)
ancestor = lodash.find(nodes, {id: ancestor.parent})
}
@simenbrekken
simenbrekken / webpack.config.js
Created August 6, 2014 09:42
Webpack Config
var webpack = require('webpack')
var config = {
devtool: 'source-map',
entry: {
app: [
'./src/styles/index.styl',
'./src/scripts/index.js',
'moment/locale/nb'
@simenbrekken
simenbrekken / server.js
Created August 6, 2014 09:15
Node.js server.
var express = require('express')
var server = express()
server.use(express.static('build'))
server.use(function(request, response) {
response.sendfile('src/index.html')
});
server.listen(3000)
@simenbrekken
simenbrekken / rrouter-middleware.js
Created June 13, 2014 08:34
RRouter Express Middleware
var middleware = function(routes) {
return function(req, res, next) {
var path = req.path
var query = req.query
var match = Router.matchRoutes(routes, path, query)
if (!match.route) return next()
var props = lodash.reduceRight(match.activeTrace, function(props, trace) {
return lodash.assign(props, trace.match)