UNPKG

@routes/index

Version:

📇 An index of routes exposed by Express app

41 lines (38 loc) • 856 B
const flatten = require('@recursive/flatten'); const extract = require('./lib/extract'); const route = require('./lib/route'); /** * Get app routes index and 404 route * @param {Express} app Expressjs app instance * @param {Function} [options.filter] Filter routes from list * @param {Function} [options.should] Serve the 404 page * @return {Object} */ module.exports = (app, { filter, should } = {}) => { const result = extract(app, { filter }); Object.defineProperties( result, { route: { value: route(result, { should }), enumerable: false, configurable: true, writable: true, }, flat: { get: () => Array.from( new Set( flatten( Object.values( result, ), ), ), ), enumerable: false, configurable: true, }, }, ); return result; };