8443
).parse(process.argv)
-let sites = JSON.parse(fs.readFileSync('config/sites.json'))
-let mime_types = JSON.parse(fs.readFileSync('config/mime_types.json'))
+let sites //= JSON.parse(fs.readFileSync('config/sites.json'))
+let mime_types //= JSON.parse(fs.readFileSync('config/mime_types.json'))
let mime_type_default = 'application/octet-stream'
-let mime_type_css = mime_types['css'] || mime_type_default
-let mime_type_html = mime_types['html'] || mime_type_default
let serve = (res, status, mime_type, data) => {
res.statusCode = status
// html files will be direct recipient of links/bookmarks so can't have
// a long lifetime, other files like css or images are often large files
// and won't change frequently (but we'll need cache busting eventually)
- if (commander.enableCaching && mime_type !== mime_type_html)
+ if (commander.enableCaching && mime_type !== mime_types['html'])
res.setHeader('Cache-Control', 'max-age=3600')
res.setHeader('Content-Type', mime_type)
res.setHeader('Content-Length', data.length)
}
let app = async (req, res, protocol) => {
+ // refresh global configuration variables
+ sites = await req_json('config/sites.json')
+ mime_types = await req_json('config/mime_types.json')
+
let site = req.headers.host || 'localhost'
let temp = site.indexOf(':')
let port_suffix = temp === -1 ? '' : site.substring(temp)