UNPKG

@fitch-digital/fitch-create-app

Version:

Boilerplate templates for FITCH projects

45 lines (36 loc) 1.04 kB
const Hapi = require('@hapi/hapi'); const Inert = require('@hapi/inert'); const path = require('path'); const routes = require('./routes'); const init = async () => { const port = process.env.PORT || 3000; const relativeTo = path.join(process.cwd(), 'build'); const server = Hapi.server({ port, host: '0.0.0.0', routes: { cors: true, files: { relativeTo, }, }, }); await server.register(Inert); server.route(routes); // when all routes fail, redirect to index. // also works with history api server.ext('onPreResponse', (req, h) => { const { response } = req; if (response.isBoom && response.output.statusCode === 404) { return h.file('index.html'); } return h.continue; }); await server.start(); console.log(`🚀 Server running on ${server.info.uri}`); }; process.on('unhandledRejection', err => { console.log(err); process.exit(1); }); init();