UNPKG

1.18 kBJavaScriptView Raw
1var getPort = require('get-port')
2
3var isElectronProject = require('./is-electron-project')
4var http = require('./http-server')
5var bankai = require('../http')
6
7module.exports = start
8
9function start (entry, opts) {
10 var handler = bankai(entry, opts)
11
12 isElectronProject(handler.compiler.dirname, function (err, bool) {
13 if (err) throw err
14 opts.electron = bool
15
16 var state = handler.state // TODO: move all UI code into this file
17 var server = http.createServer(function (req, res) {
18 if (req.type === 'OPTIONS') return cors(req, res)
19 handler(req, res, function () {
20 res.statusCode = 404
21 return res.end('No route found for ' + req.url)
22 })
23 })
24
25 getPort({port: 8080})
26 .then(function (port) {
27 server.listen(port, function () {
28 state.port = port
29 })
30 })
31 .catch(function (err) {
32 state.error = err
33 })
34 })
35}
36
37function cors (req, res) {
38 res.setHeader('access-control-allow-origin', '*')
39 res.setHeader('access-control-allow-methods', '*')
40 res.setHeader('access-control-allow-headers', '*')
41 res.setHeader('access-control-allow-credentials', 'true')
42 res.end(200)
43}