-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathindex.js
56 lines (50 loc) · 1.88 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"use strict";
require('coffee-script/register');
var path = require("path");
var url = require("url");
var fs = require("fs");
var CONST = require("./node_modules/zenserver/lib/zen.constants.coffee")
global.ZEN = {
path: path.join(__dirname, "../.."),
file: path.join(__dirname, "../../80cents.yml") };
var Zen = require('zenserver')
module.exports = {
start: function() {
var zen = Zen.start()
// -- Default Endpoints
var endpoints = {
api: ["session", "order", "customer", "collection", "product", "review",
"image", "settings", "page", "discount", "checkout"],
www: ["admin", "store.order", "store.profile", "store"]
};
var context, endpoint, values, _i, _len;
for (context in endpoints) {
values = endpoints[context];
for (_i = 0, _len = values.length; _i < _len; _i++) {
endpoint = values[_i];
require(path.join(__dirname, "/" + context + "/" + endpoint))(zen)
}
}
// -- Default assets
zen.get("/assets/core", function(request, response) {
var cache_modified, file, last_modified, mime_type, _ref;
file = __dirname + url.parse(request.url).pathname.replace("/core", "");
if (fs.existsSync(file)) {
last_modified = fs.statSync(file).mtime;
cache_modified = request.headers["if-modified-since"];
if ((cache_modified != null) && __time(last_modified) === __time(cache_modified)) {
mime_type = CONST.MIME[(_ref = path.extname(file)) != null ? _ref.slice(1) : void 0] || CONST.MIME.html;
return response.run(null, 304, mime_type);
} else {
return response.file(file, 60, last_modified);
}
} else {
return response.page("404", null, null, 404);
}
}, false);
return zen;
}
};
var __time = function (value) {
return (new Date(value)).getTime();
}