v1/api/index.js

26 lines
690 B
JavaScript

const log = new (require('../logger'))('api/index')
const glob = require('glob')
const PROD = process.env.NODE_ENV === 'production'
module.exports = async (router, ctx, { forceClear = false } = {}) => {
const apis = glob.sync(`./api/**/!(index).js`)
log.debug('found apis', apis)
for (let a of apis) {
if (a.endsWith('_test.js') && PROD) {
log.debug(`skipping ${a}`)
continue
}
log.debug(`mounting ${a}`)
try {
const pathname = a.replace('api/', '')
if (forceClear) {
delete require.cache[require.resolve(pathname)]
}
require(pathname)(router, ctx)
} catch (e) {
log.error(`couldn't mount ${a}`, e)
}
}
}