module.exports = async (config) => { let isReady = false; const http = require("http"), address = require("network-address"), handler = require("serve-handler"), build = require("./build"), { build: buildOpts, logFunction: log = () => {}, serve: serveOpts, } = config || {}, { outputPath, srcPath } = buildOpts || {}, { port = 5000 } = serveOpts || {}, server = http.createServer((request, response) => { // You pass two more arguments for config and middleware // More details here: https://github.com/vercel/serve-handler#options return handler(request, response, { public: outputPath }); }); await build(config); server.listen(port, async () => { log( `Running at http://${address()}:${port} / http://localhost:${port}` ); }); };