@rxap/schematic-nestjs 0.0.2-dev.0

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 (165) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/GETSTARTED.md +0 -0
  3. package/GUIDES.md +0 -0
  4. package/README.md +21 -0
  5. package/collection.json +74 -0
  6. package/package.json +67 -0
  7. package/src/index.d.ts +1 -0
  8. package/src/index.js +3 -0
  9. package/src/index.js.map +1 -0
  10. package/src/schematics/crud/index.d.ts +3 -0
  11. package/src/schematics/crud/index.js +49 -0
  12. package/src/schematics/crud/index.js.map +1 -0
  13. package/src/schematics/crud/schema.d.ts +7 -0
  14. package/src/schematics/crud/schema.js +3 -0
  15. package/src/schematics/crud/schema.js.map +1 -0
  16. package/src/schematics/crud/schema.json +17 -0
  17. package/src/schematics/crud-init/index.d.ts +3 -0
  18. package/src/schematics/crud-init/index.js +14 -0
  19. package/src/schematics/crud-init/index.js.map +1 -0
  20. package/src/schematics/crud-init/schema.d.ts +4 -0
  21. package/src/schematics/crud-init/schema.js +3 -0
  22. package/src/schematics/crud-init/schema.js.map +1 -0
  23. package/src/schematics/crud-init/schema.json +18 -0
  24. package/src/schematics/crud-service/add-module-export.d.ts +4 -0
  25. package/src/schematics/crud-service/add-module-export.js +29 -0
  26. package/src/schematics/crud-service/add-module-export.js.map +1 -0
  27. package/src/schematics/crud-service/add-module-provider.d.ts +4 -0
  28. package/src/schematics/crud-service/add-module-provider.js +29 -0
  29. package/src/schematics/crud-service/add-module-provider.js.map +1 -0
  30. package/src/schematics/crud-service/coerce-class-method.d.ts +2 -0
  31. package/src/schematics/crud-service/coerce-class-method.js +10 -0
  32. package/src/schematics/crud-service/coerce-class-method.js.map +1 -0
  33. package/src/schematics/crud-service/coerce-class-property.d.ts +2 -0
  34. package/src/schematics/crud-service/coerce-class-property.js +10 -0
  35. package/src/schematics/crud-service/coerce-class-property.js.map +1 -0
  36. package/src/schematics/crud-service/coerce-collection-enum.d.ts +4 -0
  37. package/src/schematics/crud-service/coerce-collection-enum.js +29 -0
  38. package/src/schematics/crud-service/coerce-collection-enum.js.map +1 -0
  39. package/src/schematics/crud-service/coerce-module-class.d.ts +2 -0
  40. package/src/schematics/crud-service/coerce-module-class.js +32 -0
  41. package/src/schematics/crud-service/coerce-module-class.js.map +1 -0
  42. package/src/schematics/crud-service/coerce-source-file-rule.d.ts +11 -0
  43. package/src/schematics/crud-service/coerce-source-file-rule.js +29 -0
  44. package/src/schematics/crud-service/coerce-source-file-rule.js.map +1 -0
  45. package/src/schematics/crud-service/crud-class/create-method.d.ts +3 -0
  46. package/src/schematics/crud-service/crud-class/create-method.js +69 -0
  47. package/src/schematics/crud-service/crud-class/create-method.js.map +1 -0
  48. package/src/schematics/crud-service/crud-class/delete-method.d.ts +3 -0
  49. package/src/schematics/crud-service/crud-class/delete-method.js +46 -0
  50. package/src/schematics/crud-service/crud-class/delete-method.js.map +1 -0
  51. package/src/schematics/crud-service/crud-class/exists-method.d.ts +3 -0
  52. package/src/schematics/crud-service/crud-class/exists-method.js +46 -0
  53. package/src/schematics/crud-service/crud-class/exists-method.js.map +1 -0
  54. package/src/schematics/crud-service/crud-class/find-in-group-method.d.ts +3 -0
  55. package/src/schematics/crud-service/crud-class/find-in-group-method.js +37 -0
  56. package/src/schematics/crud-service/crud-class/find-in-group-method.js.map +1 -0
  57. package/src/schematics/crud-service/crud-class/find-method.d.ts +3 -0
  58. package/src/schematics/crud-service/crud-class/find-method.js +46 -0
  59. package/src/schematics/crud-service/crud-class/find-method.js.map +1 -0
  60. package/src/schematics/crud-service/crud-class/get-method.d.ts +3 -0
  61. package/src/schematics/crud-service/crud-class/get-method.js +52 -0
  62. package/src/schematics/crud-service/crud-class/get-method.js.map +1 -0
  63. package/src/schematics/crud-service/crud-class/update-field-method.d.ts +3 -0
  64. package/src/schematics/crud-service/crud-class/update-field-method.js +68 -0
  65. package/src/schematics/crud-service/crud-class/update-field-method.js.map +1 -0
  66. package/src/schematics/crud-service/crud-class/update-method.d.ts +3 -0
  67. package/src/schematics/crud-service/crud-class/update-method.js +59 -0
  68. package/src/schematics/crud-service/crud-class/update-method.js.map +1 -0
  69. package/src/schematics/crud-service/crud-class.d.ts +3 -0
  70. package/src/schematics/crud-service/crud-class.js +125 -0
  71. package/src/schematics/crud-service/crud-class.js.map +1 -0
  72. package/src/schematics/crud-service/dto-class/create-dto-class.d.ts +3 -0
  73. package/src/schematics/crud-service/dto-class/create-dto-class.js +26 -0
  74. package/src/schematics/crud-service/dto-class/create-dto-class.js.map +1 -0
  75. package/src/schematics/crud-service/dto-class/dto-class.d.ts +3 -0
  76. package/src/schematics/crud-service/dto-class/dto-class.js +133 -0
  77. package/src/schematics/crud-service/dto-class/dto-class.js.map +1 -0
  78. package/src/schematics/crud-service/dto-class/update-dto-class.d.ts +3 -0
  79. package/src/schematics/crud-service/dto-class/update-dto-class.js +28 -0
  80. package/src/schematics/crud-service/dto-class/update-dto-class.js.map +1 -0
  81. package/src/schematics/crud-service/index.d.ts +3 -0
  82. package/src/schematics/crud-service/index.js +215 -0
  83. package/src/schematics/crud-service/index.js.map +1 -0
  84. package/src/schematics/crud-service/options.d.ts +11 -0
  85. package/src/schematics/crud-service/options.js +3 -0
  86. package/src/schematics/crud-service/options.js.map +1 -0
  87. package/src/schematics/crud-service/schema.d.ts +53 -0
  88. package/src/schematics/crud-service/schema.js +3 -0
  89. package/src/schematics/crud-service/schema.js.map +1 -0
  90. package/src/schematics/crud-service/schema.json +57 -0
  91. package/src/schematics/feature-microservice/index.d.ts +11 -0
  92. package/src/schematics/feature-microservice/index.js +65 -0
  93. package/src/schematics/feature-microservice/index.js.map +1 -0
  94. package/src/schematics/feature-microservice/schema.d.ts +15 -0
  95. package/src/schematics/feature-microservice/schema.json +69 -0
  96. package/src/schematics/frontend-microservice/index.d.ts +11 -0
  97. package/src/schematics/frontend-microservice/index.js +61 -0
  98. package/src/schematics/frontend-microservice/index.js.map +1 -0
  99. package/src/schematics/frontend-microservice/schema.d.ts +16 -0
  100. package/src/schematics/frontend-microservice/schema.json +75 -0
  101. package/src/schematics/health-indicator/add-health-endpoint.d.ts +2 -0
  102. package/src/schematics/health-indicator/add-health-endpoint.js +58 -0
  103. package/src/schematics/health-indicator/add-health-endpoint.js.map +1 -0
  104. package/src/schematics/health-indicator/add-health-indicator.d.ts +2 -0
  105. package/src/schematics/health-indicator/add-health-indicator.js +61 -0
  106. package/src/schematics/health-indicator/add-health-indicator.js.map +1 -0
  107. package/src/schematics/health-indicator/add-to-global-health-endpoint.d.ts +2 -0
  108. package/src/schematics/health-indicator/add-to-global-health-endpoint.js +54 -0
  109. package/src/schematics/health-indicator/add-to-global-health-endpoint.js.map +1 -0
  110. package/src/schematics/health-indicator/coerce-health-controller.d.ts +2 -0
  111. package/src/schematics/health-indicator/coerce-health-controller.js +25 -0
  112. package/src/schematics/health-indicator/coerce-health-controller.js.map +1 -0
  113. package/src/schematics/health-indicator/coerce-health-module.d.ts +2 -0
  114. package/src/schematics/health-indicator/coerce-health-module.js +48 -0
  115. package/src/schematics/health-indicator/coerce-health-module.js.map +1 -0
  116. package/src/schematics/health-indicator/index.d.ts +3 -0
  117. package/src/schematics/health-indicator/index.js +29 -0
  118. package/src/schematics/health-indicator/index.js.map +1 -0
  119. package/src/schematics/health-indicator/schema.d.ts +4 -0
  120. package/src/schematics/health-indicator/schema.json +29 -0
  121. package/src/schematics/health-indicator-init/index.d.ts +3 -0
  122. package/src/schematics/health-indicator-init/index.js +23 -0
  123. package/src/schematics/health-indicator-init/index.js.map +1 -0
  124. package/src/schematics/health-indicator-init/schema.d.ts +3 -0
  125. package/src/schematics/health-indicator-init/schema.json +19 -0
  126. package/src/schematics/init/files/Dockerfile.template +24 -0
  127. package/src/schematics/init/files/healthcheck.js.template +35 -0
  128. package/src/schematics/init/files/main.ts.template +77 -0
  129. package/src/schematics/init/index.d.ts +6 -0
  130. package/src/schematics/init/index.js +463 -0
  131. package/src/schematics/init/index.js.map +1 -0
  132. package/src/schematics/init/schema.d.ts +23 -0
  133. package/src/schematics/init/schema.json +103 -0
  134. package/src/schematics/jwt/index.d.ts +2 -0
  135. package/src/schematics/jwt/index.js +46 -0
  136. package/src/schematics/jwt/index.js.map +1 -0
  137. package/src/schematics/jwt/schema.d.ts +3 -0
  138. package/src/schematics/jwt/schema.json +15 -0
  139. package/src/schematics/microservice/index.d.ts +12 -0
  140. package/src/schematics/microservice/index.js +117 -0
  141. package/src/schematics/microservice/index.js.map +1 -0
  142. package/src/schematics/microservice/schema.d.ts +15 -0
  143. package/src/schematics/microservice/schema.json +69 -0
  144. package/src/schematics/open-api/index.d.ts +2 -0
  145. package/src/schematics/open-api/index.js +39 -0
  146. package/src/schematics/open-api/index.js.map +1 -0
  147. package/src/schematics/open-api/schema.d.ts +3 -0
  148. package/src/schematics/open-api/schema.json +15 -0
  149. package/src/schematics/sentry/index.d.ts +3 -0
  150. package/src/schematics/sentry/index.js +129 -0
  151. package/src/schematics/sentry/index.js.map +1 -0
  152. package/src/schematics/sentry/schema.d.ts +5 -0
  153. package/src/schematics/sentry/schema.json +27 -0
  154. package/src/schematics/swagger/files/environments/environment.swagger.ts.template +7 -0
  155. package/src/schematics/swagger/files/swagger.ts.template +19 -0
  156. package/src/schematics/swagger/index.d.ts +3 -0
  157. package/src/schematics/swagger/index.js +88 -0
  158. package/src/schematics/swagger/index.js.map +1 -0
  159. package/src/schematics/swagger/schema.d.ts +4 -0
  160. package/src/schematics/swagger/schema.json +19 -0
  161. package/src/schematics/validator/index.d.ts +3 -0
  162. package/src/schematics/validator/index.js +15 -0
  163. package/src/schematics/validator/index.js.map +1 -0
  164. package/src/schematics/validator/schema.d.ts +3 -0
  165. package/src/schematics/validator/schema.json +19 -0
@@ -0,0 +1,463 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CleanUp = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const schematics_1 = require("@angular-devkit/schematics");
6
+ const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
7
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
8
+ const path_1 = require("path");
9
+ const ts_morph_1 = require("ts-morph");
10
+ function AddThrottlerModuleImport(sourceFile) {
11
+ (0, schematics_ts_morph_1.AddNestModuleImport)(sourceFile, 'ThrottlerModule', [
12
+ {
13
+ moduleSpecifier: '@nestjs/throttler',
14
+ namedImports: ['ThrottlerModule'],
15
+ },
16
+ ], w => {
17
+ w.writeLine('ThrottlerModule.forRoot(');
18
+ ts_morph_1.Writers.object({
19
+ ttl: '1',
20
+ limit: '10',
21
+ })(w);
22
+ w.write(')');
23
+ });
24
+ }
25
+ function AddConfigModuleImport(sourceFile, options) {
26
+ (0, schematics_ts_morph_1.AddNestModuleImport)(sourceFile, 'ConfigModule', [
27
+ {
28
+ moduleSpecifier: '@nestjs/config',
29
+ namedImports: ['ConfigModule'],
30
+ },
31
+ {
32
+ moduleSpecifier: 'joi',
33
+ namespaceImport: 'Joi',
34
+ },
35
+ ...(options.sentry ? [
36
+ {
37
+ moduleSpecifier: '@rxap/nest-utilities',
38
+ namedImports: ['DetermineRelease', 'DetermineEnvironment'],
39
+ },
40
+ ] : []),
41
+ ], w => {
42
+ w.writeLine('ConfigModule.forRoot(');
43
+ ts_morph_1.Writers.object({
44
+ isGlobal: 'true',
45
+ validationSchema: w1 => {
46
+ w1.write(' Joi.object(');
47
+ const obj = {
48
+ PORT: `Joi.number().default(${options.port})`,
49
+ GLOBAL_API_PREFIX: `Joi.string()${options.apiPrefix ?
50
+ `.default('${options.apiPrefix}')` :
51
+ '.optional()'}`,
52
+ };
53
+ if (options.sentry) {
54
+ obj['SENTRY_DSN'] =
55
+ `Joi.string()${options.sentryDsn ? `.default('${options.sentryDsn}')` : '.optional()'}`;
56
+ obj['SENTRY_ENABLED'] = 'Joi.string().default(environment.sentry?.enabled ?? false)';
57
+ obj['SENTRY_ENVIRONMENT'] = 'Joi.string()';
58
+ obj['SENTRY_RELEASE'] = 'Joi.string()';
59
+ obj['SENTRY_SERVER_NAME'] = `Joi.string().default(process.env.ROOT_DOMAIN ?? '${options.project}')`;
60
+ obj['SENTRY_DEBUG'] = 'Joi.string().default(environment.sentry?.debug ?? false)';
61
+ }
62
+ ts_morph_1.Writers.object(obj)(w1);
63
+ w1.write(')');
64
+ },
65
+ })(w);
66
+ w.write(')');
67
+ });
68
+ }
69
+ function AddAppGuardProvider(sourceFile) {
70
+ (0, schematics_ts_morph_1.AddNestModuleProvider)(sourceFile, {
71
+ provide: 'APP_GUARD',
72
+ useClass: 'ThrottlerGuard',
73
+ }, [
74
+ {
75
+ namedImports: ['APP_GUARD'],
76
+ moduleSpecifier: '@nestjs/core',
77
+ },
78
+ {
79
+ namedImports: ['ThrottlerGuard'],
80
+ moduleSpecifier: '@nestjs/throttler',
81
+ },
82
+ ]);
83
+ }
84
+ function AddEnvironmentProvider(sourceFile) {
85
+ (0, schematics_ts_morph_1.AddNestModuleProvider)(sourceFile, {
86
+ provide: 'ENVIRONMENT',
87
+ useValue: 'environment',
88
+ }, [
89
+ {
90
+ namedImports: ['ENVIRONMENT'],
91
+ moduleSpecifier: '@rxap/nest-utilities',
92
+ },
93
+ {
94
+ namedImports: ['environment'],
95
+ moduleSpecifier: '../environments/environment',
96
+ },
97
+ ]);
98
+ }
99
+ function AddLoggerProvider(sourceFile) {
100
+ (0, schematics_ts_morph_1.AddNestModuleProvider)(sourceFile, 'Logger', [
101
+ {
102
+ namedImports: ['Logger'],
103
+ moduleSpecifier: '@nestjs/common',
104
+ },
105
+ ]);
106
+ }
107
+ /**
108
+ * @deprecated removed
109
+ */
110
+ function AddWarmupController(sourceFile) {
111
+ (0, schematics_ts_morph_1.AddNestModuleController)(sourceFile, 'WarmupController', [
112
+ {
113
+ namedImports: ['WarmupController'],
114
+ moduleSpecifier: '@rxap/nest-google',
115
+ },
116
+ ]);
117
+ }
118
+ function UpdateAppModule(options) {
119
+ return (0, schematics_ts_morph_1.TsMorphNestProjectTransformRule)({
120
+ project: options.project,
121
+ }, (project, [sourceFile]) => {
122
+ AddThrottlerModuleImport(sourceFile);
123
+ AddConfigModuleImport(sourceFile, options);
124
+ AddAppGuardProvider(sourceFile);
125
+ AddEnvironmentProvider(sourceFile);
126
+ AddLoggerProvider(sourceFile);
127
+ if (options.google) {
128
+ AddWarmupController(sourceFile);
129
+ }
130
+ }, ['/app/app.module.ts']);
131
+ }
132
+ /**
133
+ * @deprecated removed
134
+ */
135
+ function AddGooglePackages() {
136
+ return (0, schematics_1.chain)([
137
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@google-cloud/logging-winston', 'latest', { soft: true }),
138
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('winston', 'latest', { soft: true }),
139
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('nest-winston', 'latest', { soft: true }),
140
+ ]);
141
+ }
142
+ function AddExpressPackages() {
143
+ return (0, schematics_1.chain)([
144
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@nestjs/platform-express', 'latest', { soft: true }),
145
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('helmet', 'latest', { soft: true }),
146
+ ]);
147
+ }
148
+ function AddFastifyPackages() {
149
+ return (0, schematics_1.chain)([
150
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@nestjs/platform-fastify', 'latest', { soft: true }),
151
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@fastify/helmet', 'latest', { soft: true }),
152
+ ]);
153
+ }
154
+ function AddPackages(options) {
155
+ const addPackageRules = [];
156
+ if (options.google) {
157
+ addPackageRules.push(AddGooglePackages());
158
+ }
159
+ switch (options.platform) {
160
+ case 'express':
161
+ addPackageRules.push(AddExpressPackages());
162
+ break;
163
+ case 'fastify':
164
+ addPackageRules.push(AddFastifyPackages());
165
+ break;
166
+ default:
167
+ throw new schematics_1.SchematicsException('The underlying platform is not specified');
168
+ }
169
+ return (0, schematics_1.chain)([
170
+ ...addPackageRules,
171
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@nestjs/throttler', 'latest', { soft: true }),
172
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('cookie-parser', 'latest', { soft: true }),
173
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@nestjs/config', 'latest', { soft: true }),
174
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('joi', 'latest', { soft: true }),
175
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@rxap/nest-utilities', 'latest', { soft: true }),
176
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@rxap/nest-server', 'latest', { soft: true }),
177
+ (0, schematics_utilities_1.AddPackageJsonDevDependencyRule)('@types/cookie-parser', 'latest', { soft: true }),
178
+ (0, schematics_utilities_1.AddPackageJsonDevDependencyRule)('@types/csurf', 'latest', { soft: true }),
179
+ (0, schematics_utilities_1.AddPackageJsonDevDependencyRule)('@rxap/plugin-application', 'latest', { soft: true }),
180
+ (0, schematics_utilities_1.AddPackageJsonDevDependencyRule)('@rxap/plugin-docker', 'latest', { soft: true }),
181
+ () => console.log('Install node packages ...'),
182
+ (0, schematics_utilities_1.InstallNodePackages)(),
183
+ ]);
184
+ }
185
+ function RemoveAppService(options) {
186
+ return (0, schematics_1.chain)([
187
+ tree => {
188
+ var _a, _b;
189
+ const projectSourceRoot = (0, schematics_utilities_1.GetProjectSourceRoot)(tree, options.project);
190
+ const appServiceFilePath = (0, path_1.join)(projectSourceRoot, 'app', 'app.service.ts');
191
+ if (tree.exists(appServiceFilePath)) {
192
+ if ((_b = (_a = tree.read(appServiceFilePath)) === null || _a === void 0 ? void 0 : _a.toString('utf-8')) === null || _b === void 0 ? void 0 : _b.includes('return { message: \'Hello API\' };')) {
193
+ console.warn('Remove the app service file');
194
+ tree.delete(appServiceFilePath);
195
+ if (tree.exists((0, path_1.join)(projectSourceRoot, 'app', 'app.service.spec.ts'))) {
196
+ console.warn('Remove the app service spec file');
197
+ tree.delete((0, path_1.join)(projectSourceRoot, 'app', 'app.service.spec.ts'));
198
+ }
199
+ else {
200
+ console.warn('The app service spec file does not exists');
201
+ }
202
+ }
203
+ else {
204
+ console.warn('The app service file does not contains the default method');
205
+ }
206
+ }
207
+ else {
208
+ console.warn('The app service file does not exists');
209
+ }
210
+ },
211
+ (0, schematics_ts_morph_1.CoerceNestModule)({
212
+ project: options.project,
213
+ name: 'app',
214
+ tsMorphTransform: (_, sourceFile) => {
215
+ var _a;
216
+ (_a = sourceFile.getImportDeclaration('./app.service')) === null || _a === void 0 ? void 0 : _a.remove();
217
+ (0, schematics_ts_morph_1.RemoveNestModuleProvider)(sourceFile, 'AppService');
218
+ },
219
+ }),
220
+ ]);
221
+ }
222
+ function RemoveAppControllerSpec(options) {
223
+ return (0, schematics_1.chain)([
224
+ tree => {
225
+ var _a, _b;
226
+ const projectSourceRoot = (0, schematics_utilities_1.GetProjectSourceRoot)(tree, options.project);
227
+ const appControllerSpecFilePath = (0, path_1.join)(projectSourceRoot, 'app', 'app.controller.spec.ts');
228
+ if (tree.exists(appControllerSpecFilePath)) {
229
+ if ((_b = (_a = tree.read(appControllerSpecFilePath)) === null || _a === void 0 ? void 0 : _a.toString('utf-8')) === null || _b === void 0 ? void 0 : _b.includes('should return "Hello API"')) {
230
+ console.warn('Remove the app controller spec file');
231
+ tree.delete(appControllerSpecFilePath);
232
+ }
233
+ else {
234
+ console.warn('The app controller spec file does not contains the default test');
235
+ }
236
+ }
237
+ else {
238
+ console.warn('The app controller spec file does not exists');
239
+ }
240
+ },
241
+ ]);
242
+ }
243
+ function CleanUp(options) {
244
+ return (0, schematics_1.chain)([
245
+ () => console.log('Clean up ...'),
246
+ RemoveAppService(options),
247
+ RemoveAppControllerSpec(options),
248
+ ]);
249
+ }
250
+ exports.CleanUp = CleanUp;
251
+ function CoerceAppController(options) {
252
+ return (0, schematics_1.chain)([
253
+ (0, schematics_ts_morph_1.CoerceNestController)({
254
+ project: options.project,
255
+ name: 'app',
256
+ nestModule: 'app',
257
+ tsMorphTransform: (_, sourceFile, classDeclaration) => {
258
+ var _a, _b, _c;
259
+ (0, schematics_ts_morph_1.CoerceDecorator)(classDeclaration, 'Public', { arguments: [] });
260
+ (0, schematics_ts_morph_1.CoerceImports)(sourceFile, {
261
+ moduleSpecifier: '@rxap/nest-utilities',
262
+ namedImports: ['Public'],
263
+ });
264
+ (_a = classDeclaration.getMethod('getData')) === null || _a === void 0 ? void 0 : _a.remove();
265
+ const [constructorDeclaration] = classDeclaration.getConstructors();
266
+ (_b = constructorDeclaration.getParameter('appService')) === null || _b === void 0 ? void 0 : _b.remove();
267
+ if (constructorDeclaration.getParameters().length === 0) {
268
+ constructorDeclaration.remove();
269
+ }
270
+ (_c = sourceFile.getImportDeclaration('./app.service')) === null || _c === void 0 ? void 0 : _c.remove();
271
+ },
272
+ }),
273
+ (0, schematics_ts_morph_1.CoerceOperation)({
274
+ project: options.project,
275
+ controllerName: 'app',
276
+ nestModule: 'app',
277
+ operationName: 'environment',
278
+ tsMorphTransform: (_, sourceFile) => {
279
+ (0, schematics_ts_morph_1.CoerceImports)(sourceFile, [
280
+ {
281
+ moduleSpecifier: '../environments/environment',
282
+ namedImports: ['environment'],
283
+ }, {
284
+ moduleSpecifier: '@rxap/nest-utilities',
285
+ namedImports: ['Environment'],
286
+ },
287
+ ]);
288
+ return ({
289
+ returnType: 'Environment',
290
+ statements: ['return environment;'],
291
+ });
292
+ },
293
+ }),
294
+ ]);
295
+ }
296
+ function CoerceAppModule(options) {
297
+ return (0, schematics_1.chain)([
298
+ (0, schematics_ts_morph_1.CoerceNestModule)({
299
+ project: options.project,
300
+ name: 'app',
301
+ }),
302
+ ]);
303
+ }
304
+ function CoerceEnvironmentFiles(options) {
305
+ return (0, schematics_1.chain)([
306
+ (0, schematics_ts_morph_1.TsMorphNestProjectTransformRule)({
307
+ project: options.project,
308
+ }, (project, [sourceFile, prodSourceFile]) => {
309
+ (0, schematics_ts_morph_1.CoerceImports)(sourceFile, {
310
+ moduleSpecifier: '@rxap/nest-utilities',
311
+ namedImports: ['Environment'],
312
+ });
313
+ (0, schematics_ts_morph_1.CoerceImports)(prodSourceFile, {
314
+ moduleSpecifier: '@rxap/nest-utilities',
315
+ namedImports: ['Environment'],
316
+ });
317
+ const baseEnvironment = {
318
+ name: w => w.quote('development'),
319
+ production: 'false',
320
+ };
321
+ if (options.sentry) {
322
+ baseEnvironment['sentry'] = ts_morph_1.Writers.object({
323
+ enabled: 'false',
324
+ debug: 'false',
325
+ });
326
+ }
327
+ (0, schematics_ts_morph_1.CoerceVariableDeclaration)(sourceFile, 'environment', {
328
+ type: 'Environment',
329
+ initializer: ts_morph_1.Writers.object(baseEnvironment),
330
+ });
331
+ baseEnvironment['name'] = w => w.quote('production');
332
+ baseEnvironment['production'] = 'true';
333
+ if (options.sentry) {
334
+ baseEnvironment['sentry'] = ts_morph_1.Writers.object({
335
+ enabled: 'true',
336
+ debug: 'false',
337
+ });
338
+ }
339
+ (0, schematics_ts_morph_1.CoerceVariableDeclaration)(prodSourceFile, 'environment', {
340
+ type: 'Environment',
341
+ initializer: ts_morph_1.Writers.object(baseEnvironment),
342
+ });
343
+ }, [
344
+ '/environments/environment.ts?',
345
+ '/environments/environment.prod.ts?',
346
+ ]),
347
+ ]);
348
+ }
349
+ function updateProjectPackageJson(options) {
350
+ return (tree) => {
351
+ var _a, _b, _c, _d, _e;
352
+ var _f;
353
+ const projectRoot = (0, schematics_utilities_1.GetProjectRoot)(tree, options.project);
354
+ const rootPackageJson = (0, schematics_utilities_1.GetPackageJson)(tree);
355
+ const packageJsonFilePath = (0, path_1.join)(projectRoot, 'package.json');
356
+ if (!tree.exists(packageJsonFilePath)) {
357
+ tree.create(packageJsonFilePath, '{}');
358
+ }
359
+ const content = JSON.parse((_b = (_a = tree.read(packageJsonFilePath)) === null || _a === void 0 ? void 0 : _a.toString('utf-8')) !== null && _b !== void 0 ? _b : '{}');
360
+ (_c = content.dependencies) !== null && _c !== void 0 ? _c : (content.dependencies = {});
361
+ (_d = (_f = content.dependencies).joi) !== null && _d !== void 0 ? _d : (_f.joi = (_e = (rootPackageJson.dependencies ? rootPackageJson.dependencies['joi'] : undefined)) !== null && _e !== void 0 ? _e : 'latest');
362
+ tree.overwrite(packageJsonFilePath, JSON.stringify(content, undefined, 2));
363
+ };
364
+ }
365
+ function writeFiles(options) {
366
+ return tree => {
367
+ const projectSourceRoot = (0, schematics_utilities_1.GetProjectSourceRoot)(tree, options.project);
368
+ return (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./files'), [
369
+ (0, schematics_1.applyTemplates)(options),
370
+ (0, schematics_1.move)(projectSourceRoot),
371
+ (0, schematics_1.forEach)(entry => {
372
+ if (tree.exists(entry.path)) {
373
+ if (options.overwrite) {
374
+ tree.overwrite(entry.path, entry.content);
375
+ }
376
+ return null;
377
+ }
378
+ return entry;
379
+ }),
380
+ ]));
381
+ };
382
+ }
383
+ function updateProjectTargets(options) {
384
+ return (0, schematics_1.chain)([
385
+ (0, schematics_utilities_1.UpdateProjectConfigurationRule)(project => {
386
+ var _a, _b, _c;
387
+ var _d;
388
+ (_a = project.targets) !== null && _a !== void 0 ? _a : (project.targets = {});
389
+ const buildTarget = project.targets['build'];
390
+ if (!buildTarget) {
391
+ throw new schematics_1.SchematicsException(`The build target is not defined for the project ${options.project}`);
392
+ }
393
+ (_b = buildTarget.options) !== null && _b !== void 0 ? _b : (buildTarget.options = {});
394
+ buildTarget.options['generatePackageJson'] = true;
395
+ (_c = (_d = buildTarget.options)['assets']) !== null && _c !== void 0 ? _c : (_d['assets'] = []);
396
+ const assets = buildTarget.options['assets'];
397
+ const dockerfilePath = (0, path_1.join)(project.sourceRoot, 'Dockerfile');
398
+ if (!assets.includes(dockerfilePath)) {
399
+ assets.push(dockerfilePath);
400
+ }
401
+ const healthcheckPath = (0, path_1.join)(project.sourceRoot, 'healthcheck.js');
402
+ if (!assets.includes(healthcheckPath)) {
403
+ assets.push(healthcheckPath);
404
+ }
405
+ }, {
406
+ projectName: options.project,
407
+ }),
408
+ ]);
409
+ }
410
+ function default_1(options) {
411
+ return () => tslib_1.__awaiter(this, void 0, void 0, function* () {
412
+ var _a, _b, _c;
413
+ if ((_a = options.healthIndicatorList) === null || _a === void 0 ? void 0 : _a.length) {
414
+ options.healthIndicator = true;
415
+ }
416
+ (_b = options.pluginBuildInfoOptions) !== null && _b !== void 0 ? _b : (options.pluginBuildInfoOptions = {});
417
+ (_c = options.pluginDockerOptions) !== null && _c !== void 0 ? _c : (options.pluginDockerOptions = {});
418
+ options.pluginBuildInfoOptions['project'] = options.project;
419
+ options.pluginDockerOptions['project'] = options.project;
420
+ console.log('Init options', options);
421
+ return (0, schematics_1.chain)([
422
+ CleanUp(options),
423
+ () => console.log('Write template files ...'),
424
+ writeFiles(options),
425
+ () => console.log('Coerce the AppModule Class ...'),
426
+ CoerceAppModule(options),
427
+ () => console.log('Coerce the AppController Class ...'),
428
+ CoerceAppController(options),
429
+ () => console.log('Update the AppModule Class ...'),
430
+ UpdateAppModule(options),
431
+ () => console.log('Coerce the Environment files ...'),
432
+ CoerceEnvironmentFiles(options),
433
+ () => console.log('Update the project configuration ...'),
434
+ updateProjectTargets(options),
435
+ () => console.log('Add npm packages ...'),
436
+ AddPackages(options),
437
+ // updateProjectPackageJson(options),
438
+ options.healthIndicator ? () => {
439
+ var _a;
440
+ console.log('Add the health indicator ...');
441
+ if ((_a = options.healthIndicatorList) === null || _a === void 0 ? void 0 : _a.length) {
442
+ return (0, schematics_1.chain)(options.healthIndicatorList.map(name => (0, schematics_utilities_1.ExecuteSchematic)('health-indicator', { project: options.project, name })));
443
+ }
444
+ else {
445
+ return (0, schematics_utilities_1.ExecuteSchematic)('health-indicator-init', { project: options.project });
446
+ }
447
+ } : (0, schematics_1.noop)(),
448
+ options.sentry ? (0, schematics_utilities_1.ExecuteSchematic)('sentry', { project: options.project, required: !!options.sentryDsn }) : (0, schematics_1.noop)(),
449
+ options.validator ? (0, schematics_utilities_1.ExecuteSchematic)('validator', { project: options.project }) : (0, schematics_1.noop)(),
450
+ options.swagger ? (0, schematics_utilities_1.ExecuteSchematic)('swagger', { project: options.project }) : (0, schematics_1.noop)(),
451
+ options.openApi ? (0, schematics_utilities_1.ExecuteSchematic)('open-api', { project: options.project }) : (0, schematics_1.noop)(),
452
+ options.jwt ? (0, schematics_utilities_1.ExecuteSchematic)('jwt', { project: options.project }) : (0, schematics_1.noop)(),
453
+ (0, schematics_utilities_1.ExecuteExternalSchematic)('@rxap/plugin-application', 'init', {
454
+ projects: [options.project],
455
+ dockerImageName: options.pluginDockerOptions.imageName,
456
+ dockerImageSuffix: options.pluginDockerOptions.imageSuffix,
457
+ dockerImageRegistry: options.pluginDockerOptions.imageRegistry,
458
+ }),
459
+ ]);
460
+ });
461
+ }
462
+ exports.default = default_1;
463
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/init/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface InitSchema {
2
+ project: string;
3
+ google: boolean;
4
+ sentry: boolean;
5
+ swagger: boolean;
6
+ healthIndicator: boolean;
7
+ platform: 'express' | 'fastify';
8
+ validator: boolean;
9
+ healthIndicatorList?: string[];
10
+ pluginBuildInfoOptions?: Record<string, unknown>;
11
+ pluginDockerOptions?: {
12
+ imageSuffix?: string;
13
+ imageName?: string;
14
+ imageRegistry?: string;
15
+ save?: boolean;
16
+ } & Record<string, unknown>;
17
+ port: number;
18
+ apiPrefix?: string;
19
+ sentryDsn?: string;
20
+ overwrite: boolean;
21
+ openApi: boolean;
22
+ jwt: boolean;
23
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "nest-init",
4
+ "title": "Init",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "The name of the project.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ },
13
+ "x-prompt": "Which project should be initialized?"
14
+ },
15
+ "google": {
16
+ "type": "boolean",
17
+ "default": false,
18
+ "description": "Whether this service will be deployed on google resources",
19
+ "x-prompt": "Is this service deployed on google resources?"
20
+ },
21
+ "sentry": {
22
+ "type": "boolean",
23
+ "default": false,
24
+ "description": "Whether this service should use sentry",
25
+ "x-prompt": "Should this service use sentry?"
26
+ },
27
+ "swagger": {
28
+ "type": "boolean",
29
+ "default": false,
30
+ "description": "Whether this service should use swagger",
31
+ "x-prompt": "Should this service expose a swagger endpoint?"
32
+ },
33
+ "healthIndicator": {
34
+ "type": "boolean",
35
+ "default": false,
36
+ "description": "Whether this service should use a health indicator",
37
+ "x-prompt": "Should this service have a health indicator endpoint?"
38
+ },
39
+ "healthIndicatorList": {
40
+ "type": "array",
41
+ "items": {
42
+ "type": "string"
43
+ },
44
+ "description": "A list of health indicators"
45
+ },
46
+ "validator": {
47
+ "type": "boolean",
48
+ "default": true,
49
+ "description": "Whether this service use the ValidationPipe",
50
+ "x-prompt": "Should this service use the ValidationPipe?"
51
+ },
52
+ "platform": {
53
+ "type": "string",
54
+ "enum": [
55
+ "express",
56
+ "fastify"
57
+ ],
58
+ "default": "express",
59
+ "x-prompt": "Whichever platform should be used?"
60
+ },
61
+ "port": {
62
+ "type": "number",
63
+ "default": 3000,
64
+ "description": "The default port where the server is listens",
65
+ "x-prompt": "Enter the default port?"
66
+ },
67
+ "apiPrefix": {
68
+ "type": "string",
69
+ "description": "The default global api prefix"
70
+ },
71
+ "pluginBuildInfoOptions": {
72
+ "type": "object",
73
+ "additionalProperties": true
74
+ },
75
+ "pluginDockerOptions": {
76
+ "type": "object",
77
+ "additionalProperties": true
78
+ },
79
+ "sentryDsn": {
80
+ "type": "string",
81
+ "description": "Default sentry dsn"
82
+ },
83
+ "overwrite": {
84
+ "type": "boolean",
85
+ "default": false,
86
+ "description": "Whether to overwrite existing files"
87
+ },
88
+ "jwt": {
89
+ "type": "boolean",
90
+ "default": false,
91
+ "description": "Whether the application should use jwt"
92
+ },
93
+ "openApi": {
94
+ "alias": "open-api",
95
+ "type": "boolean",
96
+ "default": false,
97
+ "description": "Whether the application should use openApi as client"
98
+ }
99
+ },
100
+ "required": [
101
+ "project"
102
+ ]
103
+ }
@@ -0,0 +1,2 @@
1
+ import { JwtSchematicSchema } from './schema';
2
+ export default function (options: JwtSchematicSchema): () => import("@angular-devkit/schematics").Rule;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schematics_1 = require("@angular-devkit/schematics");
4
+ const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function default_1(options) {
8
+ return () => {
9
+ return (0, schematics_1.chain)([
10
+ (0, schematics_ts_morph_1.CoerceNestModule)({
11
+ project: options.project,
12
+ name: 'app',
13
+ tsMorphTransform: (_, sourceFile) => {
14
+ (0, schematics_ts_morph_1.AddNestModuleProvider)(sourceFile, 'JwtGuardProvider', [
15
+ {
16
+ namedImports: ['JwtGuardProvider'],
17
+ moduleSpecifier: '@rxap/nest-jwt',
18
+ },
19
+ ]);
20
+ (0, schematics_ts_morph_1.AddNestModuleImport)(sourceFile, 'JwtModule', [
21
+ {
22
+ namedImports: ['JwtModule'],
23
+ moduleSpecifier: '@nestjs/jwt',
24
+ },
25
+ ], w => {
26
+ w.writeLine('JwtModule.registerAsync(');
27
+ ts_morph_1.Writers.object({
28
+ inject: '[ ConfigService ]',
29
+ useFactory: '(config: ConfigService) => ({})',
30
+ })(w);
31
+ w.write(')');
32
+ });
33
+ (0, schematics_ts_morph_1.CoerceImports)(sourceFile, {
34
+ moduleSpecifier: '@nestjs/config',
35
+ namedImports: ['ConfigService'],
36
+ });
37
+ },
38
+ }),
39
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@rxap/nest-jwt', 'latest', { soft: true }),
40
+ (0, schematics_utilities_1.AddPackageJsonDependencyRule)('@nestjs/jwt', 'latest', { soft: true }),
41
+ (0, schematics_utilities_1.InstallNodePackages)(),
42
+ ]);
43
+ };
44
+ }
45
+ exports.default = default_1;
46
+ //# sourceMappingURL=index.js.map