MCPcopy
hub / github.com/SparkPost/heml / startDevServer

Function startDevServer

packages/heml/src/bin/commands/develop.js:84–112  ·  view source on GitHub ↗

* Launches a server that reloads when the update function is called * @param {String} defaultPreview the default content for when the sever loads * @return {Object} { server, port, update }

(directory, port = 3000)

Source from the content-addressed store, hash-verified

82 * @return {Object} { server, port, update }
83 */
84function startDevServer (directory, port = 3000) {
85 let url
86 const app = express()
87 const { reload } = reloadServer(app)
88 let preview = ''
89
90 app.get('/', (req, res) => res.send(preview))
91 app.use(express.static(directory))
92
93 function update ({ html, errors, metadata }) {
94 let status = errors.length ? chalk.red('failed') : chalk.green('success')
95 preview = errors.length
96 ? buildErrorPage(errors)
97 : html.replace('</body>', '<script src="/reload/reload.js"></script></body>')
98
99 renderCLI({ url, status, time: metadata.time, size: metadata.size })
100 reload()
101 }
102
103 return new Promise((resolve, reject) => {
104 getPort({ port }).then((availablePort) => {
105 url = `http://localhost:${availablePort}`
106
107 app.listen(availablePort, () => resolve({ update, url, app }))
108 })
109
110 process.on('uncaughtException', reject)
111 })
112}

Callers 1

developFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected