Skip to content

Instantly share code, notes, and snippets.

View caseyWebb's full-sized avatar

Casey Webb caseyWebb

View GitHub Profile
Verifying that "caseywebb.id" is my Blockstack ID. https://onename.com/caseywebb
@caseyWebb
caseyWebb / trading-parameters.ts
Created May 7, 2017 00:27
trading-parameters.ts
import Persistable from './_persistable'
type Exchange =
'coinbase' |
'hitbtc'
type CurrencySymbol =
'USD' |
'BTC' |
'ETH' |
@caseyWebb
caseyWebb / _persistable.test.ts
Created May 7, 2017 00:17
Simple MongoDB Persistence
import * as Bluebird from 'bluebird'
import * as db from './db'
import Persistable from './_persistable'
beforeAll(() => db.connect())
afterEach(() => db.drop())
afterAll(() => db.disconnect())
test('persistable abstract class adds `create', async () => {
const name = 'foos'
@caseyWebb
caseyWebb / new.js
Last active March 14, 2017 21:16
Building a Better Router - new
import ko from 'knockout'
import Router from 'ko-component-router'
Router.useRoutes({
'/user/:id': ['user-show', loadUser,
{
'/': 'user-overview',
'/todos': ['user-todos' loadUserToDos]
}
]
@caseyWebb
caseyWebb / old.js
Last active March 14, 2017 21:14
old router usage
import ko from 'knockout'
import Router from 'ko-component-router'
ko.components.register('app', {
template: '<ko-component-router params="routes: routes"></ko-component-router>',
viewModel: class App {
constructor() {
this.routes = {
'/user/:id/!': [loadUser, 'user-show']
}
import events from '../events'
const COURSE_TYPES = new Map([
['/', 0],
['/on-demand', 1],
['/live', 2],
['/assessment', 4]
])
export default {
@caseyWebb
caseyWebb / tabsession.js
Created February 7, 2017 18:54
Shared Tab Session
'use strict'
const { each } = require('lodash')
incrementTabCount()
window.addEventListener('unload', decrementTabCount)
window.addEventListener('storage', (e) => {
if (e.key === 'getSessionStorage') {
// Some tab asked for the sessionStorage
@caseyWebb
caseyWebb / getRouteList.js
Last active February 4, 2017 00:48
UniversitySite Route List
const { concat, endsWith, flatMap, includes, map, reduce } = require('lodash')
const routes = require('./routes')
function createSiteMap(routes) {
return reduce(routes, (accum, { routes: children }, route) =>
concat(accum,
children
? flatMap(createSiteMap(children), (child) => {
let r = route + child
r = r.replace(new RegExp('//', 'g'), '/')
@caseyWebb
caseyWebb / new.js
Last active January 13, 2017 19:54
Link-List Refactor
'use strict'
let _; const { each, map, some, every } = _ = require('lodash')
const ko = require('knockout')
const $ = require('jquery')
const Query = require('ko-querystring').default
module.exports = class LinkList {
constructor({
sections,
@caseyWebb
caseyWebb / lint.js
Last active December 29, 2016 00:14
ESLint New/Changed Files (Gulp Task)
'use strict'
const spawn = require('cross-spawn')
const byline = require('byline')
const gulp = require('gulp')
const eslint = require('gulp-eslint')
module.exports = (done) => {
const diff = spawn('git', ['--no-pager', 'diff', '--cached', '--name-only', '*.js'])
const scripts = []