UNPKG

1.06 kBJavaScriptView Raw
1/*eslint no-process-env: "off" */
2const express = require('express');
3const _ = require('lodash');
4const config = require('./config');
5const log = require('./config').log;
6
7const create = (redisHost, redisPort, port) => {
8 config.configureRedis(redisHost, redisPort);
9
10 if (!_.isUndefined(port) && !_.isNull(port)) {
11 config.setPort(port);
12 }
13
14 const app = express();
15 const server = require('http').createServer(app);
16 require('./config/express')(app);
17 require('./app/routes')(app);
18
19 app.config = config;
20 app.services = require('./app/services');
21
22 const cleanConfig = _.cloneDeep(config);
23 delete cleanConfig.log;
24 log.warn(`Starting with config: ${JSON.stringify(cleanConfig, null, config.jsonIndent)}`);
25
26 app.run = () => {
27 app.services.manager.setRunning(true);
28 server.listen(config.port, () => {
29 log.warn(`chillastic server listening on port ${config.port}`);
30 });
31 };
32
33 app.stop = () => {
34 app.services.manager.setRunning(false);
35 server.close();
36 };
37
38 return app;
39};
40
41module.exports = create;
42