blob: 82caa06449d4b8223d78b6b830d9ccd936959c54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import express from 'express';
import { logger } from '../logger.js';
import { AddressInfo } from 'net';
import { PageDirectory } from '../builder/pages.js';
const app = express();
app.use(express.static(process.env.OUTPUT_DIR, { extensions: ['html'] }));
export const start = (pages: PageDirectory) => {
const server = app.listen(process.env.WEBSERVER_PORT, () => {
const address = server.address() as AddressInfo;
logger.info(`Serving files from: ${process.env.OUTPUT_DIR}`);
logger.info(` Address: http://localhost:${address.port}`);
logger.info(` ^C to stop`);
logger.info('')
if (process.env.WEBSERVER_AUTOREBUILD === 'true') {
import('./watcher.js').then((watcher) => {
watcher.start(pages);
});
}
});
const closeServer = () => {
logger.info(`Stopping server...`);
server.close();
}
const exitHandler = () => {
if (server.listening) {
closeServer();
}
}
process.on('SIGINT', exitHandler);
process.on('SIGTERM', exitHandler);
};
|