aboutsummaryrefslogtreecommitdiffstats
path: root/build/server.moon
diff options
context:
space:
mode:
Diffstat (limited to 'build/server.moon')
-rw-r--r--build/server.moon11
1 files changed, 9 insertions, 2 deletions
diff --git a/build/server.moon b/build/server.moon
index d14b0b4..46ea737 100644
--- a/build/server.moon
+++ b/build/server.moon
@@ -17,6 +17,7 @@ import convert, MermaidDebugger from require 'mmm.mmmfs.conversion'
import get_store from require 'mmm.mmmfs.stores'
import render from require 'mmm.mmmfs.layout'
import Browser from require 'mmm.mmmfs.browser'
+import init_cache from require 'mmm.mmmfs.cache'
import decodeURI from require 'http.util'
lfs = require 'lfs'
@@ -41,6 +42,11 @@ class Server
if @flags.unsafe == nil
@flags.unsafe = not @flags.rw or opts.host == 'localhost' or opts.host == '127.0.0.1'
+ if @flags.cache
+ assert not @flags.rw, "--rw and --cache are incompatible"
+ @root = Fileder @store
+ init_cache!
+
-- @TODO: fix UNSAFE!
UNSAFE = @flags.unsafe
@@ -55,7 +61,7 @@ class Server
assert @server\loop!
handle_interactive: (fileder, facet) =>
- root = Fileder @store
+ root = @root or Fileder @store
browser = Browser root, fileder.path, facet.name
render browser\todom!, fileder, noview: true, scripts: "
@@ -93,7 +99,7 @@ class Server
switch method
when 'GET', 'HEAD'
- root = Fileder @store
+ root = @root or Fileder @store
export BROWSER
BROWSER = :path
fileder = root\walk path
@@ -217,6 +223,7 @@ class Server
-- * FLAGS - any of the following:
-- --[no-]rw - enable/disable POST?PUT/DELETE operations (default: on if local)
-- --[no-]unsafe - enable/disable server-side code execution when writable is on (default: on if local or --no-rw)
+-- --[no-]cache - cache all fileder contents (default: off)
-- * STORE - see mmm/mmmfs/stores/init.moon:get_store
-- * host - interface to bind to (default localhost, set to 0.0.0.0 for public hosting)
-- * port - port to serve from, default 8000