diff options
author | frankiebee <frankie.diamond@gmail.com> | 2017-04-03 17:08:31 +0800 |
---|---|---|
committer | frankiebee <frankie.diamond@gmail.com> | 2017-04-03 17:09:03 +0800 |
commit | 57655073f6ab4e93b9947302d46a20bd2c7288f1 (patch) | |
tree | 3bce06d9ccd8f003cec720b8444d489e1ed6c050 /mascara/server.js | |
parent | 9736e96a93799f081ede01bc7ecd295fa264ffd5 (diff) | |
download | tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.tar tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.tar.gz tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.tar.bz2 tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.tar.lz tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.tar.xz tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.tar.zst tangerine-wallet-browser-57655073f6ab4e93b9947302d46a20bd2c7288f1.zip |
Rename mascara root directory
Diffstat (limited to 'mascara/server.js')
-rw-r--r-- | mascara/server.js | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/mascara/server.js b/mascara/server.js new file mode 100644 index 000000000..67c89f11b --- /dev/null +++ b/mascara/server.js @@ -0,0 +1,103 @@ +const express = require('express') +const browserify = require('browserify') +const watchify = require('watchify') +const babelify = require('babelify') + +const zeroBundle = createBundle('./src/mascara.js') +const controllerBundle = createBundle('./src/dapp-connection.js') +const popupBundle = createBundle('./src/popup.js') +const swBuild = createBundle('./src/background.js') + +const appBundle = createBundle('./example/index.js') + +// +// Iframe Server +// + +const iframeServer = express() + +// serve popup window +iframeServer.get('/popup/scripts/popup.js', function(req, res){ + res.send(popupBundle.latest) +}) +iframeServer.use('/popup', express.static('../dist/chrome')) + +// serve controller bundle +iframeServer.get('/controller.js', function(req, res){ + res.send(controllerBundle.latest) +}) +iframeServer.get('/popup/sw-build.js', function(req, res){ + console.log('/sw-build.js') + res.setHeader('Content-Type', 'application/javascript') + res.send(swBuild.latest) +}) + +// serve background controller +iframeServer.use(express.static('./server')) + +// start the server +const mascaraPort = 9001 +iframeServer.listen(mascaraPort) +console.log(`Mascara service listening on port ${mascaraPort}`) + + +// +// Dapp Server +// + +const dappServer = express() + +// serve metamask-lib bundle +dappServer.get('/zero.js', function(req, res){ + res.send(zeroBundle.latest) +}) + +// serve dapp bundle +dappServer.get('/app.js', function(req, res){ + res.send(appBundle.latest) +}) + +// serve static +dappServer.use(express.static('./example')) + +// start the server +const dappPort = '9002' +dappServer.listen(dappPort) +console.log(`Dapp listening on port ${dappPort}`) + +// +// util +// + +function serveBundle(entryPoint){ + const bundle = createBundle(entryPoint) + return function(req, res){ + 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) throw err + console.log(`Bundle updated! (${entryPoint})`) + bundleContainer.latest = result.toString() + }) + } + +} |