/
seed.js
36 lines (30 loc) · 1.08 KB
/
seed.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import program from 'commander';
import requireDirectory from 'require-directory';
import map from 'lodash/map';
import merge from 'lodash/merge';
import Logger from '../src/services/logger';
import initializeServices from './lib/initializeServices';
program
.version('0.0.1')
.option('-e, --env <env>', 'Environment', 'development')
.option('-c, --config <config>', 'Config file', 'local')
.parse(process.argv);
process.env.NODE_ENV = program.env;
const config = require(`../config/${program.config}.json`);
// allow for external configuration
if (process.env.PORT) config.httpPort = +process.env.PORT;
if (process.env.EVENTSTORE_SERVICE_URL) config.esEndPoint = process.env.EVENTSTORE_SERVICE_URL;
const logger = Logger;
const services = { logger, config };
(async () => {
try {
await initializeServices(services);
const seeds = requireDirectory(module, './seeds');
const aggregates = {};
for (let [key, seed] of Object.entries(seeds)) { await seed.default(services, aggregates); };
process.exit(0);
} catch (err) {
logger.error(err);
process.exit(1);
}
})();