nexi
Version:
Nodejs rails-ish port
26 lines (23 loc) • 754 B
JavaScript
const path = require('path')
const fs = require('fs').promises
const isAsync = func => func.constructor.name === "AsyncFunction";
const getAdditionalDecorators = async (rootDir) => {
const filePath = path.join(rootDir, `config/initializers`)
try {
const files = await fs.readdir(filePath)
return files.map(file => require(filePath + '/' + file))
} catch (e) {
return []
}
}
module.exports = async (context) => {
const initializers = await getAdditionalDecorators(context.config.srcDir)
let asyncInitializers = []
initializers.forEach(initializer => {
if (isAsync(initializer)) {
return asyncInitializers.push(initializer(context))
}
return initializer(context)
})
return Promise.all(asyncInitializers)
}