let Site = require('./Site')
let assert = require('assert')
let fs = require('fs')
+let jst_server = require('./index')
let url = require('url')
let util = require('util')
this.mime_type_html = 'text/html; charset=utf-8'
this.mime_type_default = 'application/octet-stream'
- this.jst_cache = new JSTCache('.', {_server: this}, true)
+ this.jst_cache = new JSTCache('.', {_jst_server: jst_server}, true)
}
let compare_listen = (a, b) => {
}
if (config !== undefined) {
+ config = await config(this)
this.enable_caching = config.enable_caching
let listen = []
)
}
-let site_factory_default = async (server, root) => new Site(server, root)
-
Server.prototype.respond = async function(request, response, protocol) {
try {
let parsed_url = url.parse(
parsed_url: parsed_url,
pathname: parsed_url.pathname,
response: response,
- request: request
+ request: request,
+ server: this
}
)
}
let ZipCache = require('@ndcode/zip_cache')
let assert = require('assert')
let fs = require('fs')
+let jst_server = require('./index')
let util = require('util')
let fs_mkdir = util.promisify(fs.mkdir)
this.json_cache = new JSONCache(true)
this.json_cache_rw = new JSONCacheRW(true)
- this.jst_cache = new JSTCache(root, {_server: server, _site: this}, true)
+ this.jst_cache = new JSTCache(root, {_jst_server: jst_server}, true)
this.less_css_cache = new LessCSSCache(root, true)
this.min_css_cache = new MinCSSCache(true)
this.min_js_cache = new MinJSCache(true)
throw err
return false
}
+ env.site = this
await template(env, ...args)
return true
}
-let SiteDefault = require('../SiteDefault')
-let SiteRedirect = require('../SiteRedirect')
-
-return {
- "enable_caching": false,
- "listen": [
- {"port": 8080},
- {"port": 8443, "protocol": "https:"}
- ],
- "mime_types": {
- ".css": "text/css; charset=utf-8",
- ".html": "text/html; charset=utf-8",
- ".ico": "image/x-icon",
- ".jpg": "image/jpeg",
- ".jpeg": "image/jpeg",
- ".js": "application/javascript; charset=utf-8",
- ".json": "application/json; charset=utf-8",
- ".png": "image/png",
- ".svg": "image/svg+xml",
- ".xml": "text/xml; charset=utf-8"
- },
- sites: {
- 'localhost': new SiteDefault(_server, 'site'),
- 'localhost.localdomain': new SiteRedirect(_server, 'localhost')
+return async server => (
+ {
+ "enable_caching": false,
+ "listen": [
+ {"port": 8080},
+ {"port": 8443, "protocol": "https:"}
+ ],
+ "mime_types": {
+ ".css": "text/css; charset=utf-8",
+ ".html": "text/html; charset=utf-8",
+ ".ico": "image/x-icon",
+ ".jpg": "image/jpeg",
+ ".jpeg": "image/jpeg",
+ ".js": "application/javascript; charset=utf-8",
+ ".json": "application/json; charset=utf-8",
+ ".png": "image/png",
+ ".svg": "image/svg+xml",
+ ".xml": "text/xml; charset=utf-8"
+ },
+ sites: {
+ 'localhost': new _jst_server.SiteDefault(server, 'site'),
+ 'localhost.localdomain': new _jst_server.SiteRedirect(server, 'localhost')
+ }
}
-}
+)
return async env => {
- _site.serve(
+ env.site.serve(
env,
200,
Buffer.from(