@common-stack/generate-plugin 6.0.1-alpha.9 → 6.0.2-alpha.1

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.
Files changed (235) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +8 -0
  3. package/README.md +280 -10
  4. package/cde-config.json +86 -0
  5. package/executors.json +14 -0
  6. package/generators.json +15 -0
  7. package/lib/constants/index.cjs +2 -1
  8. package/lib/constants/index.cjs.map +1 -1
  9. package/lib/constants/index.d.ts +1 -0
  10. package/lib/constants/index.mjs +2 -1
  11. package/lib/constants/index.mjs.map +1 -1
  12. package/lib/executors/sort-package-json/executor.cjs +46 -0
  13. package/lib/executors/sort-package-json/executor.cjs.map +1 -0
  14. package/lib/executors/sort-package-json/executor.d.ts +4 -0
  15. package/lib/executors/sort-package-json/executor.mjs +46 -0
  16. package/lib/executors/sort-package-json/executor.mjs.map +1 -0
  17. package/lib/executors/sort-package-json/executor.spec.d.ts +1 -0
  18. package/lib/executors/sort-package-json/schema.json +9 -0
  19. package/lib/executors/update-deploy-version/executor.cjs +22 -0
  20. package/lib/executors/update-deploy-version/executor.cjs.map +1 -0
  21. package/lib/executors/update-deploy-version/executor.d.ts +4 -0
  22. package/lib/executors/update-deploy-version/executor.mjs +22 -0
  23. package/lib/executors/update-deploy-version/executor.mjs.map +1 -0
  24. package/lib/executors/update-deploy-version/executor.spec.d.ts +1 -0
  25. package/lib/executors/update-deploy-version/schema.json +14 -0
  26. package/lib/generators/add-backend/files/CHANGELOG.md +0 -0
  27. package/lib/generators/add-backend/files/Dockerfile +1 -1
  28. package/lib/generators/add-backend/files/package.json +114 -131
  29. package/lib/generators/add-backend/files/tsconfig.json +1 -1
  30. package/lib/generators/add-backend/files/webpack.config.js +6 -10
  31. package/lib/generators/add-backend/generator.cjs +21 -17
  32. package/lib/generators/add-backend/generator.cjs.map +1 -1
  33. package/lib/generators/add-backend/generator.d.ts +1 -0
  34. package/lib/generators/add-backend/generator.mjs +21 -17
  35. package/lib/generators/add-backend/generator.mjs.map +1 -1
  36. package/lib/generators/add-browser-package/files/package.json +47 -47
  37. package/lib/generators/add-browser-package/generator.cjs +14 -16
  38. package/lib/generators/add-browser-package/generator.cjs.map +1 -1
  39. package/lib/generators/add-browser-package/generator.d.ts +1 -0
  40. package/lib/generators/add-browser-package/generator.mjs +14 -16
  41. package/lib/generators/add-browser-package/generator.mjs.map +1 -1
  42. package/lib/generators/add-client-package/files/CHANGELOG.md +807 -0
  43. package/lib/generators/add-client-package/files/LICENSE +674 -0
  44. package/lib/generators/add-client-package/files/jest.config.js +13 -0
  45. package/lib/generators/add-client-package/files/package.json +30 -0
  46. package/lib/generators/add-client-package/files/rollup.config.mjs +29 -0
  47. package/lib/generators/add-client-package/files/src/components/index.tsx.template +1 -0
  48. package/lib/generators/add-client-package/files/src/index.ts.template +1 -0
  49. package/lib/generators/add-client-package/files/tsconfig.json +27 -0
  50. package/lib/generators/add-client-package/files/webpack.config.js +72 -0
  51. package/lib/generators/add-client-package/generator.cjs +17 -0
  52. package/lib/generators/add-client-package/generator.cjs.map +1 -0
  53. package/lib/generators/add-client-package/generator.d.ts +5 -0
  54. package/lib/generators/add-client-package/generator.mjs +17 -0
  55. package/lib/generators/add-client-package/generator.mjs.map +1 -0
  56. package/lib/generators/add-client-package/generator.spec.d.ts +1 -0
  57. package/lib/generators/add-client-package/schema.json +19 -0
  58. package/lib/generators/add-core-package/files/CHANGELOG.md +1076 -0
  59. package/lib/generators/add-core-package/files/LICENSE +39 -0
  60. package/lib/generators/add-core-package/files/jest.config.js +3 -0
  61. package/lib/generators/add-core-package/files/package.json +30 -0
  62. package/lib/generators/add-core-package/files/rollup.config.mjs +65 -0
  63. package/lib/generators/add-core-package/files/src/constants/index.ts.template +1 -0
  64. package/lib/generators/add-core-package/files/src/constants/types.ts.template +3 -0
  65. package/lib/generators/add-core-package/files/src/index.ts.template +2 -0
  66. package/lib/generators/add-core-package/files/src/types/index.ts.template +1 -0
  67. package/lib/generators/add-core-package/files/src/types/types.ts.template +17 -0
  68. package/lib/generators/add-core-package/files/tsconfig.json +22 -0
  69. package/lib/generators/add-core-package/files/webpack.config.js +53 -0
  70. package/lib/generators/add-core-package/generator.cjs +17 -0
  71. package/lib/generators/add-core-package/generator.cjs.map +1 -0
  72. package/lib/generators/add-core-package/generator.d.ts +5 -0
  73. package/lib/generators/add-core-package/generator.mjs +17 -0
  74. package/lib/generators/add-core-package/generator.mjs.map +1 -0
  75. package/lib/generators/add-core-package/generator.spec.d.ts +1 -0
  76. package/lib/generators/add-core-package/schema.json +19 -0
  77. package/lib/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  78. package/lib/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  79. package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  80. package/lib/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  81. package/lib/generators/add-frontend/generator.cjs +60 -42
  82. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  83. package/lib/generators/add-frontend/generator.d.ts +1 -0
  84. package/lib/generators/add-frontend/generator.mjs +60 -42
  85. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  86. package/lib/generators/add-frontend/schema.json +1 -1
  87. package/lib/generators/add-frontend/templates/package.json +17 -75
  88. package/lib/generators/add-frontend/templates/postcss.config.js +6 -0
  89. package/lib/generators/add-frontend/templates/tailwind.config.ts.template +12 -0
  90. package/lib/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  91. package/lib/generators/add-fullstack/files/jest.config copy.js +27 -0
  92. package/lib/generators/add-fullstack/files/jest.config.base.js +43 -4
  93. package/lib/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  94. package/lib/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  95. package/lib/generators/add-fullstack/files/lint-staged.config.js +4 -1
  96. package/lib/generators/add-fullstack/files/nx.json +18 -13
  97. package/lib/generators/add-fullstack/files/package.json +358 -358
  98. package/lib/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  99. package/lib/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  100. package/lib/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
  101. package/lib/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  102. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  103. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  104. package/lib/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  105. package/lib/generators/add-fullstack/files/tools/sortPackageJson.mjs +0 -1
  106. package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  107. package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  108. package/lib/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  109. package/lib/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  110. package/lib/generators/add-fullstack/generator.cjs +63 -2
  111. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  112. package/lib/generators/add-fullstack/generator.mjs +63 -2
  113. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  114. package/lib/generators/add-fullstack/schema.json +4 -0
  115. package/lib/generators/add-moleculer/files/package.json +4 -4
  116. package/lib/generators/add-moleculer/generator.cjs +14 -16
  117. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  118. package/lib/generators/add-moleculer/generator.d.ts +1 -0
  119. package/lib/generators/add-moleculer/generator.mjs +14 -16
  120. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  121. package/lib/generators/add-server-package/files/CHANGELOG.md +2599 -0
  122. package/lib/generators/add-server-package/files/LICENSE +674 -0
  123. package/lib/generators/add-server-package/files/jest.config.js +32 -0
  124. package/lib/generators/add-server-package/files/package.json +78 -0
  125. package/lib/generators/add-server-package/files/rollup.config.mjs +30 -0
  126. package/lib/generators/add-server-package/files/src/constants/constants.ts.template +62 -0
  127. package/lib/generators/add-server-package/files/src/constants/index.ts.template +1 -0
  128. package/lib/generators/add-server-package/files/src/constants/types.ts.template +21 -0
  129. package/lib/generators/add-server-package/files/src/index.ts.template +6 -0
  130. package/lib/generators/add-server-package/files/src/module.ts.template +6 -0
  131. package/lib/generators/add-server-package/files/tsconfig.json +27 -0
  132. package/lib/generators/add-server-package/generator.cjs +17 -0
  133. package/lib/generators/add-server-package/generator.cjs.map +1 -0
  134. package/lib/generators/add-server-package/generator.d.ts +5 -0
  135. package/lib/generators/add-server-package/generator.mjs +17 -0
  136. package/lib/generators/add-server-package/generator.mjs.map +1 -0
  137. package/lib/generators/add-server-package/generator.spec.d.ts +1 -0
  138. package/lib/generators/add-server-package/schema.json +19 -0
  139. package/lib/index.cjs +1 -1
  140. package/lib/index.d.ts +5 -0
  141. package/lib/index.mjs +1 -1
  142. package/package.json +4 -2
  143. package/project.json +12 -1
  144. package/rollup.config.mjs +8 -0
  145. package/src/constants/index.ts +2 -1
  146. package/src/executors/sort-package-json/executor.spec.ts +18 -0
  147. package/src/executors/sort-package-json/executor.ts +53 -0
  148. package/src/executors/sort-package-json/schema.d.ts +1 -0
  149. package/src/executors/sort-package-json/schema.json +9 -0
  150. package/src/executors/update-deploy-version/executor.spec.ts +18 -0
  151. package/src/executors/update-deploy-version/executor.ts +36 -0
  152. package/src/executors/update-deploy-version/schema.d.ts +3 -0
  153. package/src/executors/update-deploy-version/schema.json +14 -0
  154. package/src/generators/add-backend/generator.ts +8 -4
  155. package/src/generators/add-browser-package/generator.ts +7 -6
  156. package/src/generators/add-client-package/generator.spec.ts +20 -0
  157. package/src/generators/add-client-package/generator.ts +24 -0
  158. package/src/generators/add-client-package/schema.d.ts +4 -0
  159. package/src/generators/add-client-package/schema.json +19 -0
  160. package/src/generators/add-core-package/generator.spec.ts +20 -0
  161. package/src/generators/add-core-package/generator.ts +24 -0
  162. package/src/generators/add-core-package/schema.d.ts +4 -0
  163. package/src/generators/add-core-package/schema.json +19 -0
  164. package/src/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  165. package/src/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  166. package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  167. package/src/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  168. package/src/generators/add-frontend/generator.ts +24 -2
  169. package/src/generators/add-frontend/schema.json +1 -1
  170. package/src/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  171. package/src/generators/add-fullstack/files/jest.config copy.js +27 -0
  172. package/src/generators/add-fullstack/files/jest.config.base.js +43 -4
  173. package/src/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  174. package/src/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  175. package/src/generators/add-fullstack/files/lint-staged.config.js +4 -1
  176. package/src/generators/add-fullstack/files/nx.json +18 -13
  177. package/src/generators/add-fullstack/files/package.json +7 -7
  178. package/src/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  179. package/src/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  180. package/src/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
  181. package/src/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  182. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  183. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  184. package/src/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  185. package/src/generators/add-fullstack/files/tools/sortPackageJson.mjs +0 -1
  186. package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  187. package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  188. package/src/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  189. package/src/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  190. package/src/generators/add-fullstack/generator.ts +83 -1
  191. package/src/generators/add-fullstack/schema.d.ts +1 -0
  192. package/src/generators/add-fullstack/schema.json +4 -0
  193. package/src/generators/add-moleculer/files/package.json +4 -4
  194. package/src/generators/add-moleculer/generator.ts +7 -6
  195. package/src/generators/add-server-package/generator.spec.ts +20 -0
  196. package/src/generators/add-server-package/generator.ts +24 -0
  197. package/src/generators/add-server-package/schema.d.ts +4 -0
  198. package/src/generators/add-server-package/schema.json +19 -0
  199. package/src/index.ts +5 -0
  200. package/lib/generators/add-backend/files/knexfile.js +0 -63
  201. package/lib/generators/add-backend/files/src/api/remote-config.ts.template +0 -11
  202. package/lib/generators/add-backend/files/src/api/resolver.ts.template +0 -15
  203. package/lib/generators/add-backend/files/src/api/scalar.ts.template +0 -16
  204. package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +0 -189
  205. package/lib/generators/add-backend/files/src/api/utils.ts.template +0 -44
  206. package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +0 -228
  207. package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +0 -80
  208. package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +0 -43
  209. package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +0 -78
  210. package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +0 -82
  211. package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +0 -73
  212. package/lib/generators/add-backend/files/src/express-app.ts.template +0 -67
  213. package/lib/generators/add-backend/files/src/interfaces/index.ts.template +0 -1
  214. package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +0 -16
  215. package/lib/generators/add-backend/files/src/main.spec.ts.template +0 -129
  216. package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +0 -12
  217. package/lib/generators/add-backend/files/src/middleware/cors.ts.template +0 -31
  218. package/lib/generators/add-backend/files/src/middleware/error.ts.template +0 -63
  219. package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +0 -60
  220. package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +0 -40
  221. package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +0 -9
  222. package/lib/generators/add-backend/files/src/middleware/services.ts.template +0 -16
  223. package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +0 -24
  224. package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +0 -25
  225. package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +0 -185
  226. package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +0 -113
  227. package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +0 -158
  228. package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +0 -47
  229. package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +0 -43
  230. package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +0 -88
  231. package/lib/generators/add-backend/files/src/stack-server.ts.template +0 -277
  232. package/lib/generators/add-backend/files/src/utils/migrations.ts.template +0 -32
  233. package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
  234. package/lib/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
  235. package/src/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
@@ -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
- }
@@ -1,107 +0,0 @@
1
- /* eslint-disable jest/require-hook */
2
- /* eslint-disable no-loop-func */
3
- /* eslint-disable no-undef */
4
- /* eslint-disable @typescript-eslint/no-var-requires */
5
- /* eslint-disable @typescript-eslint/no-floating-promises */
6
- /* eslint-disable no-restricted-syntax */
7
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
8
- /* eslint-disable @typescript-eslint/no-unsafe-call */
9
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
10
- /* eslint-disable @typescript-eslint/no-shadow */
11
- /* eslint-disable no-console */
12
- /* eslint-disable @typescript-eslint/restrict-template-expressions */
13
- /* eslint-disable consistent-return */
14
- const glob = require('glob');
15
- const path = require('path');
16
- const fs = require('fs');
17
- const simpleGit = require('simple-git');
18
-
19
- const git = simpleGit();
20
-
21
- const monorepoRoot = path.resolve(__dirname, '..');
22
-
23
- const findPackageJsonFiles = () => {
24
- return new Promise((resolve, reject) => {
25
- glob(
26
- `${monorepoRoot}/+(servers|portable-devices|packages|packages-modules)/**/package.json`,
27
- { onlyFiles: false, ignore: '**/node_modules/**' },
28
- (err, files) => {
29
- if (err) reject(`Unable to scan directory: ${err}`);
30
- resolve(files);
31
- }
32
- );
33
- });
34
- };
35
-
36
- const buildPackageMap = async () => {
37
- const packageJsonFiles = await findPackageJsonFiles();
38
- const packageMap = new Map();
39
-
40
- packageJsonFiles.forEach(file => {
41
- const packageJson = JSON.parse(fs.readFileSync(file, 'utf8'));
42
- if (packageJson.name) {
43
- packageMap.set(packageJson.name, path.dirname(file));
44
- }
45
- });
46
-
47
- return packageMap;
48
- };
49
-
50
- const searchAndUpdate = (dependencies, filePath, obj, packageMap) => {
51
- const packageDir = path.dirname(filePath);
52
-
53
- for (const key in dependencies) {
54
- if (packageMap.has(key)) {
55
- const targetDir = packageMap.get(key);
56
- const relativePath = path.relative(packageDir, targetDir);
57
- dependencies[key] = `link:${relativePath}`;
58
- const str = JSON.stringify(obj, null, 2);
59
- fs.writeFileSync(filePath, str, 'utf8');
60
- }
61
- }
62
- };
63
-
64
- const updateDependencies = async () => {
65
- const packageMap = await buildPackageMap();
66
- const packageJsonFiles = await findPackageJsonFiles();
67
-
68
- packageJsonFiles.forEach(file => {
69
- if (!file.includes('node_modules')) {
70
- fs.readFile(file, 'utf-8', (err, data) => {
71
- if (err) return console.error(`Unable to scan directory: ${err}`);
72
- try {
73
- const obj = JSON.parse(data);
74
- const { dependencies, peerDependencies, devDependencies } = obj;
75
- searchAndUpdate(dependencies, file, obj, packageMap);
76
- searchAndUpdate(peerDependencies, file, obj, packageMap);
77
- searchAndUpdate(devDependencies, file, obj, packageMap);
78
- } catch (err) {
79
- console.error(`Errored at ${file}`);
80
- console.error(err);
81
- }
82
- });
83
- }
84
- });
85
- };
86
-
87
- updateDependencies().then(() => {
88
- git.add('.')
89
- .then(() => {
90
- git.status()
91
- .then(status => {
92
- console.log('POST GIT CHANGES', status);
93
- if (status.modified.length) {
94
- const fileArray = status.modified.filter(element => element.includes('package.json'));
95
- const addArray = fileArray.map(element => `./${element}`);
96
- git.add(addArray);
97
- git.commit('Updated packages to use link for monorepo dependencies');
98
- } else {
99
- console.log('no change');
100
- }
101
- })
102
- .catch(err => {
103
- console.error(err);
104
- });
105
- })
106
- .catch(err => console.error(err));
107
- }).catch(err => console.error(err));
@@ -1,107 +0,0 @@
1
- /* eslint-disable jest/require-hook */
2
- /* eslint-disable no-loop-func */
3
- /* eslint-disable no-undef */
4
- /* eslint-disable @typescript-eslint/no-var-requires */
5
- /* eslint-disable @typescript-eslint/no-floating-promises */
6
- /* eslint-disable no-restricted-syntax */
7
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
8
- /* eslint-disable @typescript-eslint/no-unsafe-call */
9
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
10
- /* eslint-disable @typescript-eslint/no-shadow */
11
- /* eslint-disable no-console */
12
- /* eslint-disable @typescript-eslint/restrict-template-expressions */
13
- /* eslint-disable consistent-return */
14
- const glob = require('glob');
15
- const path = require('path');
16
- const fs = require('fs');
17
- const simpleGit = require('simple-git');
18
-
19
- const git = simpleGit();
20
-
21
- const monorepoRoot = path.resolve(__dirname, '..');
22
-
23
- const findPackageJsonFiles = () => {
24
- return new Promise((resolve, reject) => {
25
- glob(
26
- `${monorepoRoot}/+(servers|portable-devices|packages|packages-modules)/**/package.json`,
27
- { onlyFiles: false, ignore: '**/node_modules/**' },
28
- (err, files) => {
29
- if (err) reject(`Unable to scan directory: ${err}`);
30
- resolve(files);
31
- }
32
- );
33
- });
34
- };
35
-
36
- const buildPackageMap = async () => {
37
- const packageJsonFiles = await findPackageJsonFiles();
38
- const packageMap = new Map();
39
-
40
- packageJsonFiles.forEach(file => {
41
- const packageJson = JSON.parse(fs.readFileSync(file, 'utf8'));
42
- if (packageJson.name) {
43
- packageMap.set(packageJson.name, path.dirname(file));
44
- }
45
- });
46
-
47
- return packageMap;
48
- };
49
-
50
- const searchAndUpdate = (dependencies, filePath, obj, packageMap) => {
51
- const packageDir = path.dirname(filePath);
52
-
53
- for (const key in dependencies) {
54
- if (packageMap.has(key)) {
55
- const targetDir = packageMap.get(key);
56
- const relativePath = path.relative(packageDir, targetDir);
57
- dependencies[key] = `link:${relativePath}`;
58
- const str = JSON.stringify(obj, null, 2);
59
- fs.writeFileSync(filePath, str, 'utf8');
60
- }
61
- }
62
- };
63
-
64
- const updateDependencies = async () => {
65
- const packageMap = await buildPackageMap();
66
- const packageJsonFiles = await findPackageJsonFiles();
67
-
68
- packageJsonFiles.forEach(file => {
69
- if (!file.includes('node_modules')) {
70
- fs.readFile(file, 'utf-8', (err, data) => {
71
- if (err) return console.error(`Unable to scan directory: ${err}`);
72
- try {
73
- const obj = JSON.parse(data);
74
- const { dependencies, peerDependencies, devDependencies } = obj;
75
- searchAndUpdate(dependencies, file, obj, packageMap);
76
- searchAndUpdate(peerDependencies, file, obj, packageMap);
77
- searchAndUpdate(devDependencies, file, obj, packageMap);
78
- } catch (err) {
79
- console.error(`Errored at ${file}`);
80
- console.error(err);
81
- }
82
- });
83
- }
84
- });
85
- };
86
-
87
- updateDependencies().then(() => {
88
- git.add('.')
89
- .then(() => {
90
- git.status()
91
- .then(status => {
92
- console.log('POST GIT CHANGES', status);
93
- if (status.modified.length) {
94
- const fileArray = status.modified.filter(element => element.includes('package.json'));
95
- const addArray = fileArray.map(element => `./${element}`);
96
- git.add(addArray);
97
- git.commit('Updated packages to use link for monorepo dependencies');
98
- } else {
99
- console.log('no change');
100
- }
101
- })
102
- .catch(err => {
103
- console.error(err);
104
- });
105
- })
106
- .catch(err => console.error(err));
107
- }).catch(err => console.error(err));