aboutsummaryrefslogtreecommitdiffstats
path: root/mascara/server/util.js
diff options
context:
space:
mode:
Diffstat (limited to 'mascara/server/util.js')
-rw-r--r--mascara/server/util.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/mascara/server/util.js b/mascara/server/util.js
new file mode 100644
index 000000000..6e25b35d8
--- /dev/null
+++ b/mascara/server/util.js
@@ -0,0 +1,45 @@
+const browserify = require('browserify')
+const watchify = require('watchify')
+
+module.exports = {
+ serveBundle,
+ createBundle,
+}
+
+
+function serveBundle(server, path, bundle){
+ server.get(path, function(req, res){
+ res.setHeader('Content-Type', 'application/javascript; charset=UTF-8')
+ res.send(bundle.latest)
+ })
+}
+
+function createBundle(entryPoint){
+
+ var bundleContainer = {}
+
+ var bundler = browserify({
+ entries: [entryPoint],
+ cache: {},
+ packageCache: {},
+ plugin: [watchify],
+ })
+
+ bundler.on('update', bundle)
+ bundle()
+
+ return bundleContainer
+
+ function bundle() {
+ bundler.bundle(function(err, result){
+ if (err) {
+ console.log(`Bundle failed! (${entryPoint})`)
+ console.error(err)
+ return
+ }
+ console.log(`Bundle updated! (${entryPoint})`)
+ bundleContainer.latest = result.toString()
+ })
+ }
+
+}