| 31 | export const json = parse(pkgContent); |
| 32 | |
| 33 | export const create = async workerful => { |
| 34 | const listener = json.workerful?.server; |
| 35 | const handler = listener ? |
| 36 | (await import(resolve(dirname(pkg), listener))).default : |
| 37 | staticHandler(join(dirname(pkg), 'public')) |
| 38 | ; |
| 39 | const server = createServer(async (req, res) => { |
| 40 | let status = 0; |
| 41 | try { |
| 42 | if (workerful(req, res)) return; |
| 43 | if (await handler(req, res)) return; |
| 44 | status = 404; |
| 45 | } |
| 46 | catch (error) { |
| 47 | console.error(error); |
| 48 | status = 500; |
| 49 | } |
| 50 | res.writeHead(status); |
| 51 | res.end(); |
| 52 | }); |
| 53 | const wss = new WebSocketServer({ server }); |
| 54 | await coincident({ wss }); |
| 55 | return server; |
| 56 | }; |