Remove _server and _site available in templates in favour of env.server and env.site...
authorNick Downing <nick@ndcode.org>
Sun, 2 Dec 2018 03:48:13 +0000 (14:48 +1100)
committerNick Downing <nick@ndcode.org>
Sun, 2 Dec 2018 03:48:13 +0000 (14:48 +1100)
Server.js
SiteRoot.js
_config/server.jst
site/index.html.jst

index cab406c..c358648 100644 (file)
--- a/Server.js
+++ b/Server.js
@@ -2,6 +2,7 @@ let JSTCache = require('@ndcode/jst_cache')
 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')
 
@@ -19,7 +20,7 @@ let Server = function() {
   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) => {
@@ -65,6 +66,7 @@ Server.prototype.refresh_config = async function() {
   }
 
   if (config !== undefined) {
+    config = await config(this)
     this.enable_caching = config.enable_caching
 
     let listen = []
@@ -237,8 +239,6 @@ Server.prototype.redirect = function(response, location, message) {
   )
 }
 
-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(
@@ -275,7 +275,8 @@ Server.prototype.respond = async function(request, response, protocol) {
         parsed_url: parsed_url,
         pathname: parsed_url.pathname,
         response: response,
-        request: request
+        request: request,
+        server: this
       }
     )
   }
index 9826db6..b215ee3 100644 (file)
@@ -11,6 +11,7 @@ let TextCache = require('@ndcode/text_cache')
 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)
@@ -25,7 +26,7 @@ let SiteRoot = function(server, root) {
 
   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)
@@ -125,6 +126,7 @@ SiteRoot.prototype.serve_jst = async function(env, pathname, ...args) {
       throw err
     return false
   }
+  env.site = this
   await template(env, ...args)
   return true
 }
index 0705084..d59f9eb 100644 (file)
@@ -1,26 +1,25 @@
-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')
+    }
   }
-}
+)
index c217763..a9bcebd 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  _site.serve(
+  env.site.serve(
     env,
     200,
     Buffer.from(