UNPKG

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