UNPKG

@apolitical/server

Version:

Node.js module to encapsulate Apolitical's express server setup

37 lines (35 loc) 855 B
'use strict'; module.exports = ({ documentationLoader, loggerLoader, errorMiddleware, middlewaresLoader, probesLoader, fallbackLoader, }) => { // Main (express) loader return async function load(app, opts) { // Enable strict routing (treat "/foo" and "/foo/" as different) if (opts.strictRouting) { app.enable('strict routing'); } // Load probes probesLoader(app, opts); // Load useful middlewares middlewaresLoader(app, opts); // Load logger await loggerLoader(app, opts); // Load custom resources if (opts.appLoader) { await opts.appLoader(app); } // Load documentation documentationLoader(app, opts); // Load fallback routing fallbackLoader(app, opts); // Use error handler if (opts.handleErrors) { app.use(errorMiddleware(opts)); } }; };