UNPKG

733 BJavaScriptView Raw
1// Packages
2const detect = require('detect-port')
3
4// Ours
5const serve = require('./server')
6const listening = require('./listening')
7const getModule = require('./module')
8
9module.exports = (file, flags, module = getModule(file)) => {
10 const server = serve(module)
11
12 let port = flags.port
13 let host = flags.host
14
15 detect(port).then(open => {
16 let inUse = open !== port
17
18 if (inUse) {
19 port = open
20
21 inUse = {
22 old: flags.port,
23 open
24 }
25 }
26
27 if (host === '0.0.0.0') {
28 host = null
29 }
30
31 server.listen(port, host, async err => {
32 if (err) {
33 console.error('micro:', err.stack)
34 process.exit(1)
35 }
36
37 return await listening(server, inUse)
38 })
39 })
40}