1 | var getPort = require('get-port')
|
2 |
|
3 | var isElectronProject = require('./is-electron-project')
|
4 | var http = require('./http-server')
|
5 | var bankai = require('../http')
|
6 |
|
7 | module.exports = start
|
8 |
|
9 | function 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
|
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 |
|
37 | function 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 | }
|