@common-stack/generate-plugin 5.0.6-alpha.3 → 5.0.6-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +8 -0
- package/executors.json +14 -0
- package/generators.json +15 -0
- package/lib/executors/sort-package-json/executor.cjs +46 -0
- package/lib/executors/sort-package-json/executor.cjs.map +1 -0
- package/lib/executors/sort-package-json/executor.d.ts +4 -0
- package/lib/executors/sort-package-json/executor.mjs +46 -0
- package/lib/executors/sort-package-json/executor.mjs.map +1 -0
- package/lib/executors/sort-package-json/executor.spec.d.ts +1 -0
- package/lib/executors/sort-package-json/schema.json +9 -0
- package/lib/executors/update-deploy-version/executor.cjs +22 -0
- package/lib/executors/update-deploy-version/executor.cjs.map +1 -0
- package/lib/executors/update-deploy-version/executor.d.ts +4 -0
- package/lib/executors/update-deploy-version/executor.mjs +22 -0
- package/lib/executors/update-deploy-version/executor.mjs.map +1 -0
- package/lib/executors/update-deploy-version/executor.spec.d.ts +1 -0
- package/lib/executors/update-deploy-version/schema.json +14 -0
- package/lib/generators/add-backend/files/package.json +5 -5
- package/lib/generators/add-backend/files/tsconfig.json +1 -1
- package/lib/generators/add-backend/files/webpack.config.js +6 -10
- package/lib/generators/add-browser-package/files/package.json +1 -1
- package/lib/generators/add-client-package/files/CHANGELOG.md +807 -0
- package/lib/generators/add-client-package/files/LICENSE +674 -0
- package/lib/generators/add-client-package/files/jest.config.js +13 -0
- package/lib/generators/add-client-package/files/package.json +31 -0
- package/lib/generators/add-client-package/files/rollup.config.mjs +29 -0
- package/lib/generators/add-client-package/files/src/components/index.tsx.template +1 -0
- package/lib/generators/add-client-package/files/src/index.ts.template +1 -0
- package/lib/generators/add-client-package/files/tsconfig.json +27 -0
- package/lib/generators/add-client-package/files/webpack.config.js +72 -0
- package/lib/generators/add-client-package/generator.cjs +19 -0
- package/lib/generators/add-client-package/generator.cjs.map +1 -0
- package/lib/generators/add-client-package/generator.d.ts +4 -0
- package/lib/generators/add-client-package/generator.mjs +19 -0
- package/lib/generators/add-client-package/generator.mjs.map +1 -0
- package/lib/generators/add-client-package/generator.spec.d.ts +1 -0
- package/lib/generators/add-client-package/schema.json +19 -0
- package/lib/generators/add-core-package/files/CHANGELOG.md +1076 -0
- package/lib/generators/add-core-package/files/LICENSE +39 -0
- package/lib/generators/add-core-package/files/jest.config.js +3 -0
- package/lib/generators/add-core-package/files/package.json +31 -0
- package/lib/generators/add-core-package/files/rollup.config.mjs +65 -0
- package/lib/generators/add-core-package/files/src/constants/index.ts.template +1 -0
- package/lib/generators/add-core-package/files/src/constants/types.ts.template +3 -0
- package/lib/generators/add-core-package/files/src/index.ts.template +2 -0
- package/lib/generators/add-core-package/files/src/types/index.ts.template +1 -0
- package/lib/generators/add-core-package/files/src/types/types.ts.template +17 -0
- package/lib/generators/add-core-package/files/tsconfig.json +22 -0
- package/lib/generators/add-core-package/files/webpack.config.js +53 -0
- package/lib/generators/add-core-package/generator.cjs +19 -0
- package/lib/generators/add-core-package/generator.cjs.map +1 -0
- package/lib/generators/add-core-package/generator.d.ts +4 -0
- package/lib/generators/add-core-package/generator.mjs +19 -0
- package/lib/generators/add-core-package/generator.mjs.map +1 -0
- package/lib/generators/add-core-package/generator.spec.d.ts +1 -0
- package/lib/generators/add-core-package/schema.json +19 -0
- package/lib/generators/add-frontend/templates/package.json +8 -8
- package/lib/generators/add-fullstack/files/package.json +1 -1
- package/lib/generators/add-moleculer/files/package.json +5 -5
- package/lib/generators/add-server-package/files/CHANGELOG.md +2599 -0
- package/lib/generators/add-server-package/files/LICENSE +674 -0
- package/lib/generators/add-server-package/files/jest.config.js +32 -0
- package/lib/generators/add-server-package/files/package.json +78 -0
- package/lib/generators/add-server-package/files/rollup.config.mjs +30 -0
- package/lib/generators/add-server-package/files/src/constants/constants.ts.template +62 -0
- package/lib/generators/add-server-package/files/src/constants/index.ts.template +1 -0
- package/lib/generators/add-server-package/files/src/constants/types.ts.template +21 -0
- package/lib/generators/add-server-package/files/src/index.ts.template +6 -0
- package/lib/generators/add-server-package/files/src/module.ts.template +6 -0
- package/lib/generators/add-server-package/files/tsconfig.json +27 -0
- package/lib/generators/add-server-package/generator.cjs +19 -0
- package/lib/generators/add-server-package/generator.cjs.map +1 -0
- package/lib/generators/add-server-package/generator.d.ts +4 -0
- package/lib/generators/add-server-package/generator.mjs +19 -0
- package/lib/generators/add-server-package/generator.mjs.map +1 -0
- package/lib/generators/add-server-package/generator.spec.d.ts +1 -0
- package/lib/generators/add-server-package/schema.json +19 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +5 -0
- package/lib/index.mjs +1 -1
- package/package.json +3 -2
- package/project.json +12 -1
- package/rollup.config.mjs +8 -0
- package/src/executors/sort-package-json/executor.spec.ts +18 -0
- package/src/executors/sort-package-json/executor.ts +53 -0
- package/src/executors/sort-package-json/schema.d.ts +1 -0
- package/src/executors/sort-package-json/schema.json +9 -0
- package/src/executors/update-deploy-version/executor.spec.ts +18 -0
- package/src/executors/update-deploy-version/executor.ts +36 -0
- package/src/executors/update-deploy-version/schema.d.ts +3 -0
- package/src/executors/update-deploy-version/schema.json +14 -0
- package/src/generators/add-client-package/generator.spec.ts +20 -0
- package/src/generators/add-client-package/generator.ts +23 -0
- package/src/generators/add-client-package/schema.d.ts +4 -0
- package/src/generators/add-client-package/schema.json +19 -0
- package/src/generators/add-core-package/generator.spec.ts +20 -0
- package/src/generators/add-core-package/generator.ts +23 -0
- package/src/generators/add-core-package/schema.d.ts +4 -0
- package/src/generators/add-core-package/schema.json +19 -0
- package/src/generators/add-fullstack/files/package.json +1 -1
- package/src/generators/add-moleculer/files/package.json +5 -5
- package/src/generators/add-server-package/generator.spec.ts +20 -0
- package/src/generators/add-server-package/generator.ts +23 -0
- package/src/generators/add-server-package/schema.d.ts +4 -0
- package/src/generators/add-server-package/schema.json +19 -0
- package/src/index.ts +5 -0
- package/lib/generators/add-backend/files/knexfile.js +0 -63
- package/lib/generators/add-backend/files/src/api/remote-config.ts.template +0 -11
- package/lib/generators/add-backend/files/src/api/resolver.ts.template +0 -15
- package/lib/generators/add-backend/files/src/api/scalar.ts.template +0 -16
- package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +0 -189
- package/lib/generators/add-backend/files/src/api/utils.ts.template +0 -44
- package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +0 -228
- package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +0 -80
- package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +0 -43
- package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +0 -78
- package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +0 -82
- package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +0 -73
- package/lib/generators/add-backend/files/src/express-app.ts.template +0 -67
- package/lib/generators/add-backend/files/src/interfaces/index.ts.template +0 -1
- package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +0 -16
- package/lib/generators/add-backend/files/src/main.spec.ts.template +0 -129
- package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +0 -12
- package/lib/generators/add-backend/files/src/middleware/cors.ts.template +0 -31
- package/lib/generators/add-backend/files/src/middleware/error.ts.template +0 -63
- package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +0 -60
- package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +0 -40
- package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +0 -9
- package/lib/generators/add-backend/files/src/middleware/services.ts.template +0 -16
- package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +0 -24
- package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +0 -25
- package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +0 -185
- package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +0 -113
- package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +0 -158
- package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +0 -47
- package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +0 -43
- package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +0 -88
- package/lib/generators/add-backend/files/src/stack-server.ts.template +0 -277
- package/lib/generators/add-backend/files/src/utils/migrations.ts.template +0 -32
- package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/namespace */
|
|
2
|
-
/* eslint-disable import/no-unresolved */
|
|
3
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
|
-
// version 08/25/2021
|
|
5
|
-
import * as http from 'http';
|
|
6
|
-
import * as express from 'express';
|
|
7
|
-
import { logger as serverLogger } from '@cdm-logger/server';
|
|
8
|
-
import { Feature } from '@common-stack/server-core';
|
|
9
|
-
import { ContainerModule, interfaces, Container } from 'inversify';
|
|
10
|
-
import { ServiceBroker, ServiceSettingSchema } from 'moleculer';
|
|
11
|
-
import { CommonType } from '@common-stack/core';
|
|
12
|
-
import { isEmpty } from 'lodash-es';
|
|
13
|
-
import { CdmLogger } from '@cdm-logger/core';
|
|
14
|
-
import { applyMiddleware } from 'graphql-middleware';
|
|
15
|
-
import { shield } from 'graphql-shield';
|
|
16
|
-
import { expressApp } from './express-app';
|
|
17
|
-
import { GraphqlServer } from './server-setup/graphql-server';
|
|
18
|
-
import { config } from './config';
|
|
19
|
-
import { ConnectionBroker } from './connectors/connection-broker';
|
|
20
|
-
import { brokerConfig } from './config/moleculer.config';
|
|
21
|
-
import modules, { settings } from './modules';
|
|
22
|
-
import { GatewaySchemaBuilder } from './api/schema-builder';
|
|
23
|
-
import { WebsocketMultiPathServer } from './server-setup/websocket-multipath-update';
|
|
24
|
-
import { IModuleService } from './interfaces';
|
|
25
|
-
import { migrate } from './utils/migrations';
|
|
26
|
-
import { InterNamespaceMiddleware } from './middleware/moleculer-inter-namespace';
|
|
27
|
-
// This is temp and will be replaced one we add support for rules in Feature
|
|
28
|
-
|
|
29
|
-
type ILogger = CdmLogger.ILogger;
|
|
30
|
-
|
|
31
|
-
function startListening(port) {
|
|
32
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
33
|
-
const server = this;
|
|
34
|
-
return new Promise((resolve) => {
|
|
35
|
-
server.listen(port, resolve);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const infraModule = ({ broker, pubsub, mongoClient, logger }) =>
|
|
40
|
-
new ContainerModule((bind: interfaces.Bind) => {
|
|
41
|
-
bind('Logger').toConstantValue(logger);
|
|
42
|
-
bind(CommonType.LOGGER).toConstantValue(logger);
|
|
43
|
-
bind('Environment').toConstantValue(config.NODE_ENV || 'development');
|
|
44
|
-
bind(CommonType.ENVIRONMENT).toConstantValue(config.NODE_ENV || 'development');
|
|
45
|
-
bind('PubSub').toConstantValue(pubsub);
|
|
46
|
-
bind(CommonType.PUBSUB).toConstantValue(pubsub);
|
|
47
|
-
bind(CommonType.MOLECULER_BROKER).toConstantValue(broker);
|
|
48
|
-
bind('MoleculerBroker').toConstantValue(broker);
|
|
49
|
-
bind('MongoDBConnection').toConstantValue(mongoClient);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Controls the lifecycle of the Application Server
|
|
54
|
-
*
|
|
55
|
-
* @export
|
|
56
|
-
* @class StackServer
|
|
57
|
-
*/
|
|
58
|
-
export class StackServer {
|
|
59
|
-
public httpServer: http.Server & { startListening?: (port) => void };
|
|
60
|
-
|
|
61
|
-
private app: express.Express;
|
|
62
|
-
|
|
63
|
-
private logger: ILogger;
|
|
64
|
-
|
|
65
|
-
private connectionBroker: ConnectionBroker;
|
|
66
|
-
|
|
67
|
-
private mainserviceBroker: ServiceBroker;
|
|
68
|
-
|
|
69
|
-
private microserviceBroker: ServiceBroker;
|
|
70
|
-
|
|
71
|
-
private multiPathWebsocket: WebsocketMultiPathServer;
|
|
72
|
-
|
|
73
|
-
private serviceContainer: Container;
|
|
74
|
-
|
|
75
|
-
private microserviceContainer: Container;
|
|
76
|
-
|
|
77
|
-
constructor() {
|
|
78
|
-
this.logger = serverLogger.child({ className: 'StackServer' });
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public async initialize() {
|
|
82
|
-
this.logger.info('StackServer initializing');
|
|
83
|
-
|
|
84
|
-
// eslint-disable-next-line import/namespace
|
|
85
|
-
this.connectionBroker = new ConnectionBroker(brokerConfig.transporter, this.logger);
|
|
86
|
-
const redisClient = this.connectionBroker.redisDataloaderClient;
|
|
87
|
-
|
|
88
|
-
const mongoClient = await this.connectionBroker.mongoConnection;
|
|
89
|
-
|
|
90
|
-
// Moleculer Broker Setup
|
|
91
|
-
this.mainserviceBroker = new ServiceBroker({
|
|
92
|
-
...brokerConfig,
|
|
93
|
-
middlewares: [
|
|
94
|
-
InterNamespaceMiddleware([
|
|
95
|
-
{
|
|
96
|
-
namespace: 'api-admin',
|
|
97
|
-
transporter: brokerConfig.transporter,
|
|
98
|
-
},
|
|
99
|
-
]),
|
|
100
|
-
],
|
|
101
|
-
started: async () => {
|
|
102
|
-
await modules.preStart(this.serviceContainer);
|
|
103
|
-
if (config.NODE_ENV === 'development') {
|
|
104
|
-
// await modules.microservicePreStart(this.micorserviceContainer);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
try {
|
|
108
|
-
this.logger.info('Starting Migration');
|
|
109
|
-
await migrate(mongoClient, this.serviceContainer, this.logger);
|
|
110
|
-
this.logger.info('End Migration');
|
|
111
|
-
} catch (e) {
|
|
112
|
-
this.logger.error('Error while running migrations', e);
|
|
113
|
-
this.logger.error(e.stack);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
try {
|
|
117
|
-
await modules.postStart(this.serviceContainer);
|
|
118
|
-
} catch (e) {
|
|
119
|
-
this.logger.error('Error while running Post Start', e);
|
|
120
|
-
this.logger.error(e.stack);
|
|
121
|
-
}
|
|
122
|
-
// start DB migration
|
|
123
|
-
|
|
124
|
-
if (config.NODE_ENV === 'development') {
|
|
125
|
-
// await modules.microservicePostStart(this.micorserviceContainer);
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
// created,
|
|
130
|
-
async created() {
|
|
131
|
-
return Promise.resolve();
|
|
132
|
-
},
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
if (config.NODE_ENV === 'development') {
|
|
136
|
-
this.microserviceBroker = new ServiceBroker({
|
|
137
|
-
...brokerConfig,
|
|
138
|
-
nodeID: 'node-broker-2',
|
|
139
|
-
started: async () => {
|
|
140
|
-
await modules.microservicePreStart(this.microserviceContainer);
|
|
141
|
-
await modules.microservicePostStart(this.microserviceContainer);
|
|
142
|
-
},
|
|
143
|
-
// created,
|
|
144
|
-
created: async () => Promise.resolve(),
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
const pubsub = await this.connectionBroker.graphqlPubsub;
|
|
148
|
-
const InfraStructureFeature = new Feature({
|
|
149
|
-
createContainerFunc: [
|
|
150
|
-
() =>
|
|
151
|
-
infraModule({
|
|
152
|
-
broker: this.mainserviceBroker,
|
|
153
|
-
pubsub,
|
|
154
|
-
mongoClient,
|
|
155
|
-
logger: serverLogger,
|
|
156
|
-
}),
|
|
157
|
-
],
|
|
158
|
-
createServiceFunc: (container) => ({ moleculerBroker: container.get(CommonType.MOLECULER_BROKER) }),
|
|
159
|
-
createHemeraContainerFunc: [
|
|
160
|
-
() =>
|
|
161
|
-
infraModule({
|
|
162
|
-
broker: this.mainserviceBroker,
|
|
163
|
-
pubsub,
|
|
164
|
-
mongoClient,
|
|
165
|
-
logger: serverLogger,
|
|
166
|
-
}),
|
|
167
|
-
],
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
const allModules = new Feature(InfraStructureFeature, modules as Feature);
|
|
171
|
-
let executableSchema = await new GatewaySchemaBuilder({
|
|
172
|
-
schema: allModules.schemas,
|
|
173
|
-
resolvers: allModules.createResolvers({
|
|
174
|
-
pubsub,
|
|
175
|
-
logger: serverLogger,
|
|
176
|
-
subscriptionID: `${settings.subTopic}`,
|
|
177
|
-
}),
|
|
178
|
-
directives: [],
|
|
179
|
-
directiveResolvers: allModules.createDirectives({ logger: this.logger }),
|
|
180
|
-
middlewares: allModules.graphqlMiddlewares,
|
|
181
|
-
rules: allModules.rules,
|
|
182
|
-
logger: serverLogger,
|
|
183
|
-
}).build();
|
|
184
|
-
|
|
185
|
-
// set the service container
|
|
186
|
-
this.serviceContainer = await allModules.createContainers({ ...settings, mongoConnection: mongoClient });
|
|
187
|
-
const createServiceContext = allModules.createServiceContext({ ...settings, mongoConnection: mongoClient });
|
|
188
|
-
const serviceBroker: IModuleService = {
|
|
189
|
-
serviceContainer: this.serviceContainer,
|
|
190
|
-
serviceContext: createServiceContext,
|
|
191
|
-
dataSource: allModules.createDataSource(),
|
|
192
|
-
defaultPreferences: allModules.createDefaultPreferences(),
|
|
193
|
-
createContext: async (req, res) => allModules.createContext(req, res),
|
|
194
|
-
logger: serverLogger,
|
|
195
|
-
schema: executableSchema,
|
|
196
|
-
};
|
|
197
|
-
allModules.loadMainMoleculerService({
|
|
198
|
-
broker: this.mainserviceBroker,
|
|
199
|
-
container: this.serviceContainer,
|
|
200
|
-
settings,
|
|
201
|
-
});
|
|
202
|
-
if (config.NODE_ENV === 'development') {
|
|
203
|
-
this.microserviceContainer = await allModules.createHemeraContainers({
|
|
204
|
-
...settings,
|
|
205
|
-
mongoConnection: mongoClient,
|
|
206
|
-
});
|
|
207
|
-
allModules.loadClientMoleculerService({
|
|
208
|
-
broker: this.microserviceBroker,
|
|
209
|
-
container: this.microserviceContainer,
|
|
210
|
-
settings,
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// initialize Servers
|
|
215
|
-
this.httpServer = http.createServer();
|
|
216
|
-
this.app = await expressApp(serviceBroker, null, this.httpServer);
|
|
217
|
-
|
|
218
|
-
this.httpServer.startListening = startListening.bind(this.httpServer);
|
|
219
|
-
this.httpServer.on('request', this.app);
|
|
220
|
-
this.httpServer.on('close', () => {
|
|
221
|
-
this.httpServer = undefined;
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
const customWebsocket = allModules.getWebsocketConfig();
|
|
225
|
-
const customWebsocketEnable = !isEmpty(customWebsocket);
|
|
226
|
-
|
|
227
|
-
if (customWebsocketEnable) {
|
|
228
|
-
this.multiPathWebsocket = new WebsocketMultiPathServer(serviceBroker, redisClient, customWebsocket);
|
|
229
|
-
this.httpServer = this.multiPathWebsocket.httpServerUpgrade(this.httpServer);
|
|
230
|
-
}
|
|
231
|
-
const graphqlServer = new GraphqlServer(
|
|
232
|
-
this.app,
|
|
233
|
-
this.httpServer,
|
|
234
|
-
redisClient,
|
|
235
|
-
serviceBroker,
|
|
236
|
-
!customWebsocketEnable,
|
|
237
|
-
);
|
|
238
|
-
|
|
239
|
-
await graphqlServer.initialize();
|
|
240
|
-
this.app.use('/graphql', (req, res, next) => {
|
|
241
|
-
res.append('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
242
|
-
res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
|
243
|
-
res.append('Access-Control-Allow-Origin', '*');
|
|
244
|
-
res.append(
|
|
245
|
-
'Access-Control-Allow-Headers',
|
|
246
|
-
'X-Requested-With, X-HTTP-Method-Override, X-CSP-Nonce, Content-Type, Accept',
|
|
247
|
-
);
|
|
248
|
-
next();
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
public async start() {
|
|
253
|
-
if (config.NODE_ENV === 'development') {
|
|
254
|
-
await Promise.all([this.mainserviceBroker.start(), this.microserviceBroker.start()]);
|
|
255
|
-
} else {
|
|
256
|
-
await this.mainserviceBroker.start();
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
public async cleanup() {
|
|
261
|
-
if (this.multiPathWebsocket) {
|
|
262
|
-
this.multiPathWebsocket.close();
|
|
263
|
-
}
|
|
264
|
-
if (this.httpServer) {
|
|
265
|
-
await this.httpServer.close();
|
|
266
|
-
}
|
|
267
|
-
if (this.connectionBroker) {
|
|
268
|
-
await this.connectionBroker.stop();
|
|
269
|
-
}
|
|
270
|
-
if (this.mainserviceBroker) {
|
|
271
|
-
await this.mainserviceBroker.stop();
|
|
272
|
-
}
|
|
273
|
-
if (this.microserviceBroker) {
|
|
274
|
-
await this.microserviceBroker.stop();
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Schema, Connection } from 'mongoose';
|
|
2
|
-
import { Container } from 'inversify';
|
|
3
|
-
import { IDatabaseMigration } from '@adminide-stack/core';
|
|
4
|
-
import { CdmLogger } from '@cdm-logger/core';
|
|
5
|
-
|
|
6
|
-
export const MigrationSchema = new Schema({
|
|
7
|
-
migrated_at: Date,
|
|
8
|
-
name: { required: true, type: String },
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
export async function migrate(db: Connection, container: Container, logger: CdmLogger.ILogger) {
|
|
12
|
-
try {
|
|
13
|
-
const migrations = container.getAll<IDatabaseMigration>('MongodbMigration');
|
|
14
|
-
const model = db.model<any, any>('Migration', MigrationSchema);
|
|
15
|
-
migrations.map(async (migration) => {
|
|
16
|
-
const exists = await model.findOne({ name: migration.id });
|
|
17
|
-
if (!exists) {
|
|
18
|
-
try {
|
|
19
|
-
await migration.up();
|
|
20
|
-
await model.create({ name: migration.id, migrated_at: new Date() });
|
|
21
|
-
} catch (e) {
|
|
22
|
-
console.log(`Can not process migration ${migration.id}: `, e);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return migration.id;
|
|
27
|
-
});
|
|
28
|
-
} catch (err) {
|
|
29
|
-
console.warn('ignoring migrate database due to ', err.message);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
}
|
|
Binary file
|