Skip to content

Instantly share code, notes, and snippets.

View pfrazee's full-sized avatar

Paul Frazee pfrazee

View GitHub Profile
@pfrazee
pfrazee / local-server-framework.js
Last active December 16, 2015 13:09
trying out ideas for a better server framework
importScripts('grim/server-fn.js');
function main(request, response) {
server(request, response);
}
server.headers.link['/'] = [
{ href:'/', rel:'self' },
{ href:'/people', rel:'collection' },
{ href:'/people/{title}', rel:'item' }
@pfrazee
pfrazee / gist:5445437
Last active December 16, 2015 13:59
trying to add `require()` to Web Workers
// this works, but the imported scripts pollute the global namespace
function require(url) {
self.module = { exports:{} };
importScripts(url);
var exports = self.module.exports;
delete self.module;
return exports;
};
// this is the one I want:
@pfrazee
pfrazee / responder.js
Created April 25, 2013 00:19
deprecated helper object, Responder
// Responder
// =========
// responder sugar functions
// =========================
// this structure is used to build the various forms of the respond function
// thanks to http://httpstatus.es/ for these descriptions
var RESPONDER_FNS = {
// information
processing : [102, 'server has received and is processing the request'],
@pfrazee
pfrazee / static-server.js
Created April 25, 2013 01:11
deprecated StaticServer
(function(exports) {
var cur_iid = 0;
function geniid() {
return cur_iid++;
}
// StaticServer
// ============
// provides simple static data hosting
// - all content is added through the server object's method interface
@pfrazee
pfrazee / config-server.js
Created April 25, 2013 19:06
deprecated ConfigServer - allowed consuming apps to submit schemas and be notified of settings updates
// ConfigServer
// ============
// serves HTML for navigation
function ConfigServer() {
Environment.Server.call(this);
this.schemas = {};
this.values = {};
this.validators = {};
this.broadcasters = {};
@pfrazee
pfrazee / function-route-map.js
Last active December 16, 2015 17:09
trying out another approach to routing
ROUTE(request,
{ head: 'get', put: 'set', patch: 'set', post:'postTo' },
{
service: '/',
products: '/products',
product: '/products/:pid',
session: '/session',
collection: '/:collection',
item: '/:collection/:item'
},
@pfrazee
pfrazee / object-route-map.js
Last active December 16, 2015 17:09
YARD (yet another router design)
ROUTE(request,
{ head: 'get', put: 'set', patch: 'set', post:'postTo' },
{
'/': service,
'/products': products,
'/products/:pid': productItems,
'/session': session,
'/:collection': collection,
'/:collection/:item': item
}
@pfrazee
pfrazee / gist:5589687
Last active December 17, 2015 09:48
server controller dsl
(/
var time = require('util/time.js');
var validate = require('validators.js');
var render = require('templates.js');
/)
← Host: grimwire.com
→ Accept: text/html
←" (/ render.layout() /)
@pfrazee
pfrazee / auth_server.js
Created May 22, 2013 18:01
Old grimserver auth service
var auth = require('../../lib/auth');
var utils = require('../../lib/utils');
var qs = require('querystring');
var main_server = require('../../globals').server;
function createServer(config) {
var express = require('express');
var server = express();
@pfrazee
pfrazee / email_server.js
Created May 22, 2013 18:04
Old IMAP wrapper from grimserver
module.exports = function addRoutes(server, config) {
var path = require('path');
var Imap = require('imap');
var MailParser = require('mailparser');
var Email = require('emailjs');
// (Mail)boxes
// ===========
function end(req, res, next) {