Magic glue that makes baiji components work together
npm install baiji-glue --save
#
# Load config files by predefined pattern and orders:
#
# 1. Load `config.{js,json}`
#
# 2. Load `[extraConfig].config.{js,json}`
#
# 3. Load `[environment].{js,json}` file according to `process.env.NODE_ENV`, default
# is `development`, such as: environments/development.js
#
# 4. Load `[extra].env.{js,json}` file according to `process.env.NODE_ENV`, default
# is `development`, such as: database.env.js
#
# 5. Generate environment related method according to file names under `environments`
# folder, such as:
# ├── environments
# ...├── development.js
# ...├── production.js
# ...└── test.js
# method `isDevelopment`, `isProduction`, `isTest` will be generated according
# to above folder structure
#
# 6. Add logger folder and related files
# ├── logs
# ...├── [environment]_access.js => development_access.log
# ...└── [environment]_error.js => development_error.log
#
# 7. Combine above configs by following structure:
# {
# env: {
# NODE_ENV: 'development',
# isDevelopment() {},
# isProduction() {},
# isTest() {},
# },
# logger: {}
# error() {},
# warning() {},
# info() {},
# verbose() {},
# debug() {},
# silly() {},
# infoLogger: winston.Logger instance...,
# errorLogger: winston.Logger instance...
# },
# ... other configs from environment related config file and default config file
# }
#
# 8. Load initializer files under `initializers` folder and invoke functional
# initializers with `config` as parameter
#
# 9. Return combined config
#
const glue = require('glue');
module.exports = glue(__dirname);
const load = require('glue').load;
const models = load(__dirname, '*.js', ['index.js'])