/
index.js
46 lines (38 loc) · 1.3 KB
/
index.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
37
38
39
40
41
42
43
44
45
46
import 'source-map-support/register'
import debugLevels from 'resolve-debug-levels'
import { createActions } from 'resolve-redux'
import initBroker from './init-broker'
import initPerformanceTracer from './init-performance-tracer'
import initExpress from './init-express'
import initWebsockets from './init-websockets'
import startExpress from './start-express'
import emptyWorker from './empty-worker'
const log = debugLevels('resolve:resolve-runtime:local-entry')
const localEntry = async ({ assemblies, constants, domain, redux, routes }) => {
try {
const resolve = {
instanceId: `${process.pid}${Math.floor(Math.random() * 100000)}`,
seedClientEnvs: assemblies.seedClientEnvs,
...domain,
...constants,
eventBroker: {},
assemblies,
redux,
routes
}
resolve.aggregateActions = {}
for (const aggregate of domain.aggregates) {
Object.assign(resolve.aggregateActions, createActions(aggregate))
}
await initPerformanceTracer(resolve)
await initBroker(resolve)
await initExpress(resolve)
await initWebsockets(resolve)
await startExpress(resolve)
log.debug('Local entry point cold start success')
return emptyWorker
} catch (error) {
log.error('Local entry point cold start failure', error)
}
}
export default localEntry