Compare commits

...

2 Commits

Author SHA1 Message Date
Sven Slootweg 28931e03a8 Update and clean up dependencies 8 years ago
Sven Slootweg c0738b01db Cleaning up build dependencies 8 years ago

@ -1,7 +1,6 @@
var gulp = require('gulp');
var path = require('path');
var gutil = require('gulp-util');
var rename = require('gulp-rename');
var livereload = require('gulp-livereload');
var nodemon = require("gulp-nodemon");

@ -0,0 +1,153 @@
"use strict";
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
var Promise = require("bluebird");
var pathToRegexp = require("path-to-regexp");
var url = require("url");
var xtend = require("xtend");
var defaultValue = require("default-value");
module.exports = function () {
var routes = [];
function addRoute(method, path, handler) {
// Mutable arguments? WTF.
var keys = [];
var regex = pathToRegexp(path, keys);
routes.push({ method: method, path: path, regex: regex, keys: keys, handler: handler });
}
function getRoute(method, path) {
var matches = void 0;
var matchingRoute = routes.find(function (route) {
return route.method === method && (matches = route.regex.exec(path));
});
if (matchingRoute == null) {
throw new Error("No matching routes found");
} else {
var _ret = function () {
var params = {};
matchingRoute.keys.forEach(function (key, i) {
params[key] = matches[i + 1];
});
return {
v: {
handler: matchingRoute.handler,
params: params
}
};
}();
if ((typeof _ret === "undefined" ? "undefined" : _typeof(_ret)) === "object") return _ret.v;
}
}
function handle(method, uri, data) {
return Promise.try(function () {
var _url$parse = url.parse(uri, true);
var path = _url$parse.path;
var query = _url$parse.query;
var route = getRoute(method, path);
var tasks = [];
var req = {
path: path,
query: query,
body: data,
params: route.params,
pass: function pass() {
// FIXME: window.fetch passthrough
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
},
passRender: function passRender(viewName) {
var _this = this;
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
return Promise.try(function () {
return _this.pass(options);
}).then(function (response) {
var locals = defaultValue(options.locals, {});
var combinedLocals = xtend(locals, response.body);
res.render(viewName, combinedLocals, options);
});
}
};
var res = {
render: function render(viewName) {
var locals = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
tasks.push({
type: "render",
viewName: viewName, locals: locals, options: options
});
},
open: function open(path) {
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
tasks.push({
type: "open",
path: path, options: options
});
},
close: function close() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
tasks.push({
type: "close",
options: options
});
},
notify: function notify(message) {
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
tasks.push({
type: "notify",
message: message, options: options
});
},
error: function error(_error) {
var context = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
tasks.push({
type: "error",
error: _error, context: context
});
}
};
return Promise.try(function () {
return route.handler(req, res);
}).then(function (result) {
return {
result: result,
actions: tasks
};
});
});
}
var api = {
get: addRoute.bind(api, "get"),
post: addRoute.bind(api, "post"),
put: addRoute.bind(api, "put"),
delete: addRoute.bind(api, "delete"),
head: addRoute.bind(api, "head"),
patch: addRoute.bind(api, "patch"),
addRoute: addRoute,
handle: handle
};
return api;
};

@ -9,55 +9,34 @@
"arraydiff": "^0.1.3",
"bhttp": "^1.2.1",
"bluebird": "^3.0.6",
"body-parser": "^1.14.1",
"cookie-parser": "^1.4.0",
"body-parser": "^1.15.1",
"debug": "^2.2.0",
"default-value": "0.0.3",
"express": "^4.13.3",
"express-promise-router": "0.0.9",
"extend": "^3.0.0",
"highland": "^2.4.0",
"express-promise-router": "^1.0.0",
"in-array": "^0.1.2",
"jade": "^1.11.0",
"jquery": "^2.1.1",
"lodash": "^3.10.1",
"morgan": "^1.6.1",
"node-sass": "^3.2.0",
"null-loader": "^0.1.1",
"riot": "^2.4.0",
"riot-query": "0.0.2",
"serve-favicon": "^2.3.0",
"riot-query": "0.0.3",
"uuid": "^2.0.1",
"vinyl-named": "^1.1.0",
"xtend": "^4.0.1"
},
"devDependencies": {
"@joepie91/gulp-preset-es2015": "^1.0.1",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-es2015-riot": "^1.1.0",
"brfs": "^1.4.1",
"coffee-loader": "^0.7.2",
"coffee-script": "^1.9.1",
"debounce": "^1.0.0",
"element-size": "^1.1.1",
"gulp": "^3.9.0",
"gulp-cached": "^1.1.0",
"gulp-coffee": "^2.3.1",
"gulp-concat": "^2.6.0",
"gulp-jade": "^1.1.0",
"gulp-livereload": "^3.8.1",
"gulp-named-log": "0.0.7",
"gulp-nodemon": "^2.0.4",
"gulp-plumber": "^1.0.1",
"gulp-remember": "^0.3.0",
"gulp-rename": "^1.2.0",
"gulp-sass": "^2.1.0",
"gulp-util": "^3.0.7",
"json-loader": "^0.5.4",
"path-to-regexp": "^1.2.1",
"riotjs-loader": "^1.2.0",
"through2-spy": "^2.0.0",
"transform-loader": "^0.2.3",
"webpack-stream": "^2.3.0"
"riotjs-loader": "^3.0.0",
"webpack-stream": "^3.2.0"
}
}

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save