@rxap/plugin-nestjs 19.0.4-dev.11 → 19.0.4-dev.12

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 (51) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/GUIDES.md +7 -0
  3. package/package.json +9 -8
  4. package/src/generators/feature-microservice/generator.js +1 -1
  5. package/src/generators/feature-microservice/generator.js.map +1 -1
  6. package/src/generators/feature-microservice/schema.json +95 -14
  7. package/src/generators/frontend-microservice/generator.js +1 -1
  8. package/src/generators/frontend-microservice/generator.js.map +1 -1
  9. package/src/generators/frontend-microservice/schema.json +101 -20
  10. package/src/generators/init-application/assert-main-statements.d.ts +3 -0
  11. package/src/generators/init-application/assert-main-statements.js +66 -0
  12. package/src/generators/init-application/assert-main-statements.js.map +1 -0
  13. package/src/generators/init-application/coerce-environment-files.d.ts +6 -0
  14. package/src/generators/init-application/coerce-environment-files.js +64 -0
  15. package/src/generators/init-application/coerce-environment-files.js.map +1 -0
  16. package/src/generators/init-application/coerce-open-api-client-sdk-library.d.ts +3 -0
  17. package/src/generators/init-application/coerce-open-api-client-sdk-library.js +34 -0
  18. package/src/generators/init-application/coerce-open-api-client-sdk-library.js.map +1 -0
  19. package/src/generators/init-application/generator.js +22 -395
  20. package/src/generators/init-application/generator.js.map +1 -1
  21. package/src/generators/init-application/get-port.d.ts +3 -0
  22. package/src/generators/init-application/get-port.js +29 -0
  23. package/src/generators/init-application/get-port.js.map +1 -0
  24. package/src/generators/init-application/remove-app-controller-spec-file.d.ts +2 -0
  25. package/src/generators/init-application/remove-app-controller-spec-file.js +22 -0
  26. package/src/generators/init-application/remove-app-controller-spec-file.js.map +1 -0
  27. package/src/generators/init-application/remove-app-service-file.d.ts +2 -0
  28. package/src/generators/init-application/remove-app-service-file.js +35 -0
  29. package/src/generators/init-application/remove-app-service-file.js.map +1 -0
  30. package/src/generators/init-application/schema.json +2 -4
  31. package/src/generators/init-application/set-general-target-defaults.d.ts +3 -0
  32. package/src/generators/init-application/set-general-target-defaults.js +27 -0
  33. package/src/generators/init-application/set-general-target-defaults.js.map +1 -0
  34. package/src/generators/init-application/update-api-configuration-file.d.ts +2 -0
  35. package/src/generators/init-application/update-api-configuration-file.js +13 -0
  36. package/src/generators/init-application/update-api-configuration-file.js.map +1 -0
  37. package/src/generators/init-application/update-git-ignore.d.ts +3 -0
  38. package/src/generators/init-application/update-git-ignore.js +12 -0
  39. package/src/generators/init-application/update-git-ignore.js.map +1 -0
  40. package/src/generators/init-application/update-main-file.d.ts +3 -0
  41. package/src/generators/init-application/update-main-file.js +76 -0
  42. package/src/generators/init-application/update-main-file.js.map +1 -0
  43. package/src/generators/init-application/update-project-targets.d.ts +3 -0
  44. package/src/generators/init-application/update-project-targets.js +70 -0
  45. package/src/generators/init-application/update-project-targets.js.map +1 -0
  46. package/src/generators/init-application/update-tags.d.ts +3 -0
  47. package/src/generators/init-application/update-tags.js +35 -0
  48. package/src/generators/init-application/update-tags.js.map +1 -0
  49. package/src/generators/microservice/generator.js +14 -6
  50. package/src/generators/microservice/generator.js.map +1 -1
  51. package/src/generators/microservice/schema.json +111 -16
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeAppServiceFile = void 0;
4
+ const path_1 = require("path");
5
+ function removeAppServiceFile(tree, projectSourceRoot) {
6
+ var _a;
7
+ const appServiceFilePath = (0, path_1.join)(projectSourceRoot, 'app', 'app.service.ts');
8
+ if (tree.exists(appServiceFilePath)) {
9
+ const content = (_a = tree.read(appServiceFilePath)) === null || _a === void 0 ? void 0 : _a.toString('utf-8');
10
+ if (content) {
11
+ if (content.includes('{ message: \'Hello API\' }')) {
12
+ console.warn('Remove the app service file');
13
+ tree.delete(appServiceFilePath);
14
+ if (tree.exists((0, path_1.join)(projectSourceRoot, 'app', 'app.service.spec.ts'))) {
15
+ console.warn('Remove the app service spec file');
16
+ tree.delete((0, path_1.join)(projectSourceRoot, 'app', 'app.service.spec.ts'));
17
+ }
18
+ else {
19
+ console.warn('The app service spec file does not exists');
20
+ }
21
+ }
22
+ else {
23
+ console.warn('The app service file does not contains the default method', content);
24
+ }
25
+ }
26
+ else {
27
+ console.warn('The app service file does not exists:', appServiceFilePath);
28
+ }
29
+ }
30
+ else {
31
+ console.warn('The app service file does not exists');
32
+ }
33
+ }
34
+ exports.removeAppServiceFile = removeAppServiceFile;
35
+ //# sourceMappingURL=remove-app-service-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-app-service-file.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/remove-app-service-file.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAE5B,SAAgB,oBAAoB,CAAC,IAAU,EAAE,iBAAyB;;IAExE,MAAM,kBAAkB,GAAG,IAAA,WAAI,EAAC,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,0CAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAA,WAAI,EAAC,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;oBACvE,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;oBACjD,IAAI,CAAC,MAAM,CAAC,IAAA,WAAI,EAAC,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAE,OAAO,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,kBAAkB,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACvD,CAAC;AAEH,CAAC;AAzBD,oDAyBC"}
@@ -32,14 +32,12 @@
32
32
  "swaggerLive": {
33
33
  "type": "boolean",
34
34
  "default": false,
35
- "description": "Whether this service should start a swagger live server",
36
- "x-prompt": "Should this service start a swagger live server?"
35
+ "description": "Whether this service should start a swagger live server"
37
36
  },
38
37
  "generateMain": {
39
38
  "type": "boolean",
40
39
  "default": false,
41
- "description": "Whether the main file should be generated",
42
- "x-prompt": "Should the main file be generated?"
40
+ "description": "Whether the main file should be generated"
43
41
  },
44
42
  "healthIndicator": {
45
43
  "type": "boolean",
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { InitApplicationGeneratorSchema } from './schema';
3
+ export declare function setGeneralTargetDefaults(tree: Tree, options: InitApplicationGeneratorSchema): void;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setGeneralTargetDefaults = void 0;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
6
+ function setGeneralTargetDefaults(tree, options) {
7
+ console.log('updating default targets');
8
+ const nxJson = (0, devkit_1.readNxJson)(tree);
9
+ if (!nxJson) {
10
+ throw new Error('No nx.json found');
11
+ }
12
+ if (!options.standalone) {
13
+ (0, workspace_utilities_1.CoerceTargetDefaultsDependency)(nxJson, 'build', 'generate-package-json');
14
+ (0, workspace_utilities_1.CoerceNxJsonCacheableOperation)(nxJson, 'generate-package-json', 'generate-open-api');
15
+ (0, workspace_utilities_1.CoerceTarget)(nxJson, 'generate-package-json', {
16
+ executor: '@rxap/plugin-nestjs:package-json',
17
+ configurations: {
18
+ production: {},
19
+ },
20
+ });
21
+ (0, workspace_utilities_1.CoerceTargetDefaultsDependency)(nxJson, 'generate-open-api', 'swagger-generate');
22
+ (0, workspace_utilities_1.CoerceTargetDefaultsDependency)(nxJson, 'test', '^generate-open-api');
23
+ }
24
+ (0, devkit_1.updateNxJson)(tree, nxJson);
25
+ }
26
+ exports.setGeneralTargetDefaults = setGeneralTargetDefaults;
27
+ //# sourceMappingURL=set-general-target-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-general-target-defaults.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/set-general-target-defaults.ts"],"names":[],"mappings":";;;AAAA,uCAIoB;AACpB,mEAImC;AAGnC,SAAgB,wBAAwB,CAAC,IAAU,EAAE,OAAuC;IAC1F,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAA,oDAA8B,EAAC,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACzE,IAAA,oDAA8B,EAC5B,MAAM,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;QACxD,IAAA,kCAAY,EAAC,MAAM,EAAE,uBAAuB,EAAE;YAC5C,QAAQ,EAAE,kCAAkC;YAC5C,cAAc,EAAE;gBACd,UAAU,EAAE,EAAE;aACf;SACF,CAAC,CAAC;QACH,IAAA,oDAA8B,EAAC,MAAM,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QAChF,IAAA,oDAA8B,EAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACvE,CAAC;IAED,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAxBD,4DAwBC"}
@@ -0,0 +1,2 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare function updateApiConfigurationFile(tree: Tree, projectName: string, apiPrefix: string, apiConfigurationFile?: string): void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateApiConfigurationFile = void 0;
4
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
5
+ function updateApiConfigurationFile(tree, projectName, apiPrefix, apiConfigurationFile) {
6
+ if (apiConfigurationFile) {
7
+ (0, workspace_utilities_1.UpdateJsonFile)(tree, json => {
8
+ json[projectName] = { baseUrl: `/${apiPrefix}` };
9
+ }, apiConfigurationFile, { create: true });
10
+ }
11
+ }
12
+ exports.updateApiConfigurationFile = updateApiConfigurationFile;
13
+ //# sourceMappingURL=update-api-configuration-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-api-configuration-file.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/update-api-configuration-file.ts"],"names":[],"mappings":";;;AACA,mEAA2D;AAE3D,SAAgB,0BAA0B,CACxC,IAAU,EAAE,WAAmB,EAAE,SAAiB,EAAE,oBAA6B;IACjF,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAA,oCAAc,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAK,SAAU,EAAE,EAAE,CAAC;QACrD,CAAC,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAPD,gEAOC"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfiguration, Tree } from '@nx/devkit';
2
+ import { InitApplicationGeneratorSchema } from './schema';
3
+ export declare function updateGitIgnore(tree: Tree, project: ProjectConfiguration, options: InitApplicationGeneratorSchema): void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateGitIgnore = void 0;
4
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
5
+ const path_1 = require("path");
6
+ function updateGitIgnore(tree, project, options) {
7
+ if (!options.standalone) {
8
+ (0, workspace_utilities_1.CoerceIgnorePattern)(tree, (0, path_1.join)(project.root, '.gitignore'), ['package.json']);
9
+ }
10
+ }
11
+ exports.updateGitIgnore = updateGitIgnore;
12
+ //# sourceMappingURL=update-git-ignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-git-ignore.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/update-git-ignore.ts"],"names":[],"mappings":";;;AAIA,mEAAgE;AAChE,+BAA4B;AAG5B,SAAgB,eAAe,CAAC,IAAU,EAAE,OAA6B,EAAE,OAAuC;IAChH,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAA,yCAAmB,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAE,cAAc,CAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAJD,0CAIC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { InitApplicationGeneratorSchema } from './schema';
3
+ export declare function updateMainFile(tree: Tree, projectName: string, options: InitApplicationGeneratorSchema): void;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateMainFile = void 0;
4
+ const ts_morph_1 = require("@rxap/ts-morph");
5
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
6
+ const ts_morph_2 = require("ts-morph");
7
+ const assert_main_statements_1 = require("./assert-main-statements");
8
+ function updateMainFile(tree, projectName, options) {
9
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
10
+ project: projectName,
11
+ backend: undefined,
12
+ // directory: '..' // to move from the apps/demo/src/app folder into the apps/demo/src folder
13
+ }, (project, [sourceFile]) => {
14
+ var _a;
15
+ (0, assert_main_statements_1.assertMainStatements)(sourceFile);
16
+ const importDeclarations = [];
17
+ const statements = [];
18
+ if (options.validator) {
19
+ importDeclarations.push({
20
+ moduleSpecifier: '@rxap/nest-server',
21
+ namedImports: ['ValidationPipeSetup'],
22
+ });
23
+ statements.push('server.after(ValidationPipeSetup());');
24
+ }
25
+ if (options.swaggerLive) {
26
+ importDeclarations.push({
27
+ moduleSpecifier: '@rxap/nest-server',
28
+ namedImports: ['SetupSwagger'],
29
+ });
30
+ statements.push('server.after(SetupSwagger());');
31
+ }
32
+ (0, ts_morph_1.CoerceImports)(sourceFile, importDeclarations);
33
+ for (let i = 0; i < statements.length; i++) {
34
+ const statement = statements[i];
35
+ const lastStatement = i > 0 ? statements[i - 1] : null;
36
+ const nestStatement = i < statements.length - 1 ? statements[i + 1] : null;
37
+ const existingStatements = (_a = sourceFile.getStatements().map(s => s.getText())) !== null && _a !== void 0 ? _a : [];
38
+ if (!existingStatements.includes(statement)) {
39
+ let index;
40
+ if (lastStatement) {
41
+ index = existingStatements.findIndex(s => s.includes(lastStatement)) + 1;
42
+ }
43
+ else if (nestStatement) {
44
+ index = existingStatements.findIndex(s => s.includes(nestStatement));
45
+ }
46
+ else {
47
+ index = existingStatements.findIndex(s => s.includes(assert_main_statements_1.MAIN_BOOTSTRAP_STATEMENT));
48
+ }
49
+ console.log(`insert statement: ${statement} at index ${index}`);
50
+ sourceFile.insertStatements(index, statement);
51
+ }
52
+ }
53
+ if (projectName === 'service-status') {
54
+ const variableDeclaration = (0, ts_morph_1.CoerceVariableDeclaration)(sourceFile, 'bootstrapOptions', { initializer: '{}' });
55
+ const objectLiteralExpression = variableDeclaration.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
56
+ let objectLiteralElementLike = objectLiteralExpression.getProperty('globalPrefixOptions');
57
+ if (!objectLiteralElementLike) {
58
+ objectLiteralElementLike = objectLiteralExpression.addPropertyAssignment({
59
+ name: 'globalPrefixOptions',
60
+ initializer: '{}',
61
+ });
62
+ }
63
+ const gpoPropertyAssigment = objectLiteralElementLike.asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment);
64
+ const gpoObjectLiteralExpression = gpoPropertyAssigment.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
65
+ let gpoElementLike = gpoObjectLiteralExpression.getProperty('exclude');
66
+ if (!gpoElementLike) {
67
+ gpoElementLike = gpoObjectLiteralExpression.addPropertyAssignment({
68
+ name: 'exclude',
69
+ initializer: `[ '/health(.*)', '/info', '/openapi', '/register' ]`,
70
+ });
71
+ }
72
+ }
73
+ }, ['main.ts']);
74
+ }
75
+ exports.updateMainFile = updateMainFile;
76
+ //# sourceMappingURL=update-main-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-main-file.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/update-main-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfiguration, Tree } from '@nx/devkit';
2
+ import { InitApplicationGeneratorSchema } from './schema';
3
+ export declare function updateProjectTargets(tree: Tree, projectName: string, project: ProjectConfiguration, options: InitApplicationGeneratorSchema): void;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateProjectTargets = void 0;
4
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
5
+ function updateProjectTargets(tree, projectName, project, options) {
6
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
7
+ var _k, _l, _m, _o;
8
+ if (!options.standalone) {
9
+ (0, workspace_utilities_1.CoerceTarget)(project, 'generate-package-json', {});
10
+ }
11
+ const outputPath = (_c = (_b = (_a = project.targets) === null || _a === void 0 ? void 0 : _a.build) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.outputPath;
12
+ if (!outputPath) {
13
+ throw new Error(`No outputPath found for project ${projectName}`);
14
+ }
15
+ if (options.swagger && !options.standalone) {
16
+ (0, workspace_utilities_1.CoerceTarget)(project, 'generate-open-api', {
17
+ executor: '@rxap/plugin-library:run-generator',
18
+ options: {
19
+ generator: '@rxap/plugin-open-api:generate',
20
+ options: {
21
+ project: `open-api-${projectName}`,
22
+ path: `${outputPath.replace('dist/', 'dist/swagger/')}/openapi.json`,
23
+ serverId: projectName,
24
+ },
25
+ },
26
+ });
27
+ }
28
+ (0, workspace_utilities_1.CoerceTarget)(project, 'build', {
29
+ options: {
30
+ generatePackageJson: true,
31
+ },
32
+ configurations: {
33
+ production: {
34
+ fileReplacements: [
35
+ {
36
+ replace: `${project.sourceRoot}/environments/environment.ts`,
37
+ with: `${project.sourceRoot}/environments/environment.prod.ts`,
38
+ },
39
+ ],
40
+ },
41
+ development: {
42
+ progress: true,
43
+ },
44
+ },
45
+ }, workspace_utilities_1.Strategy.OVERWRITE);
46
+ if (tree.exists('LICENSE')) {
47
+ const buildConfiguration = (0, workspace_utilities_1.GetTarget)(project, 'build');
48
+ (_d = buildConfiguration.options) !== null && _d !== void 0 ? _d : (buildConfiguration.options = {});
49
+ (_e = (_k = buildConfiguration.options).assets) !== null && _e !== void 0 ? _e : (_k.assets = []);
50
+ (0, workspace_utilities_1.CoerceAssets)(buildConfiguration.options.assets, [
51
+ {
52
+ 'input': '',
53
+ 'glob': 'LICENSE',
54
+ 'output': '/',
55
+ },
56
+ ]);
57
+ (0, workspace_utilities_1.CoerceTarget)(project, 'build', buildConfiguration, workspace_utilities_1.Strategy.REPLACE);
58
+ }
59
+ if ((_f = project.targets) === null || _f === void 0 ? void 0 : _f['docker']) {
60
+ (_g = (_l = project.targets['docker']).options) !== null && _g !== void 0 ? _g : (_l.options = {});
61
+ (_h = (_m = project.targets['docker'].options).dockerfile) !== null && _h !== void 0 ? _h : (_m.dockerfile = 'shared/nestjs/Dockerfile');
62
+ (_j = (_o = project.targets['docker'].options).buildArgList) !== null && _j !== void 0 ? _j : (_o.buildArgList = []);
63
+ if (options.apiPrefix !== false &&
64
+ !project.targets['docker'].options.buildArgList.some((arg) => arg.startsWith('PATH_PREFIX='))) {
65
+ project.targets['docker'].options.buildArgList.push('PATH_PREFIX=REGEX:app/app.config.ts:validationSchema\\[\'GLOBAL_API_PREFIX\'\\]\\s*=\\s*Joi.string\\(\\).default\\(\\s*\'(.+)\',?\\s*\\);');
66
+ }
67
+ }
68
+ }
69
+ exports.updateProjectTargets = updateProjectTargets;
70
+ //# sourceMappingURL=update-project-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-project-targets.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/update-project-targets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfiguration } from '@nx/devkit';
2
+ import { InitApplicationGeneratorSchema } from './schema';
3
+ export declare function updateTags(projectName: string, project: ProjectConfiguration, options: InitApplicationGeneratorSchema): void;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTags = void 0;
4
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
5
+ function updateTags(projectName, project, options) {
6
+ const tags = ['backend', 'nest', 'service'];
7
+ if (options.sentry) {
8
+ tags.push('sentry');
9
+ }
10
+ if (options.swagger) {
11
+ tags.push('swagger');
12
+ }
13
+ if (options.jwt) {
14
+ tags.push('jwt');
15
+ }
16
+ if (options.healthIndicator) {
17
+ tags.push('health-indicator');
18
+ }
19
+ if (options.openApi) {
20
+ tags.push('openapi');
21
+ }
22
+ if (options.standalone) {
23
+ tags.push('standalone');
24
+ }
25
+ if (options.platform) {
26
+ tags.push(options.platform);
27
+ }
28
+ const match = projectName.match(/service-feature-(.*)/);
29
+ if (match) {
30
+ tags.push(`feature:${match[1]}`);
31
+ }
32
+ (0, workspace_utilities_1.CoerceProjectTags)(project, tags);
33
+ }
34
+ exports.updateTags = updateTags;
35
+ //# sourceMappingURL=update-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-tags.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-application/update-tags.ts"],"names":[],"mappings":";;;AACA,mEAA8D;AAG9D,SAAgB,UAAU,CACxB,WAAmB,EAAE,OAA6B,EAAE,OAAuC;IAC3F,MAAM,IAAI,GAAG,CAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAE,CAAC;IAE9C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,WAAY,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAA,uCAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAtCD,gCAsCC"}
@@ -4,23 +4,31 @@ exports.microserviceGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
6
  const nest_1 = require("@nx/nest");
7
+ const utilities_1 = require("@rxap/utilities");
8
+ const path_1 = require("path");
7
9
  const generator_1 = require("../init-application/generator");
8
10
  function microserviceGenerator(tree, options) {
9
11
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
- var _a, _b, _c, _d;
12
+ var _a, _b, _c;
11
13
  const nxJson = (0, devkit_1.readNxJson)(tree);
12
14
  if (!nxJson) {
13
15
  throw new Error('No nx.json found');
14
16
  }
15
17
  const presetOptions = (_b = (_a = nxJson.generators) === null || _a === void 0 ? void 0 : _a['@nx/nest:application']) !== null && _b !== void 0 ? _b : {};
16
- (_c = options.directory) !== null && _c !== void 0 ? _c : (options.directory = 'service');
17
- (_d = presetOptions.tags) !== null && _d !== void 0 ? _d : (presetOptions.tags = '');
18
+ let { directory, name } = options;
19
+ name = (0, utilities_1.dasherize)(name);
20
+ directory !== null && directory !== void 0 ? directory : (directory = (0, path_1.join)('service', name));
21
+ (_c = presetOptions.tags) !== null && _c !== void 0 ? _c : (presetOptions.tags = '');
18
22
  if (!presetOptions.tags.includes('nest')) {
19
23
  presetOptions.tags += (presetOptions.tags.length ? ',' : '') + 'nest';
20
24
  }
21
- yield (0, nest_1.applicationGenerator)(tree, Object.assign(Object.assign({}, presetOptions), { name: options.name, directory: options.directory }));
22
- const projectName = [options.directory.replace(/\//g, '-'), options.name].filter(Boolean).join('-');
23
- yield (0, generator_1.default)(tree, Object.assign(Object.assign({ generateMain: true, swagger: true, healthIndicator: true, sentry: true, validator: true, platform: 'express', overwrite: true }, options), { projects: [projectName] }));
25
+ console.log('Generate nest application'.cyan);
26
+ console.log('name: ' + name.magenta);
27
+ console.log('directory: ' + directory.magenta);
28
+ yield (0, nest_1.applicationGenerator)(tree, Object.assign(Object.assign({}, presetOptions), { projectNameAndRootFormat: 'as-provided', name,
29
+ directory }));
30
+ const projectName = name;
31
+ yield (0, generator_1.default)(tree, Object.assign(Object.assign({ generateMain: true }, options), { project: projectName }));
24
32
  console.log(`run the application init generator: nx g @rxap/plugin-application:init --project ${projectName}`);
25
33
  });
26
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/microservice/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAGoB;AACpB,mCAAgD;AAChD,6DAAqE;AAGrE,SAAsB,qBAAqB,CACzC,IAAU,EACV,OAAoC;;;QAGpC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,aAAa,GAAG,MAAA,MAAA,MAAM,CAAC,UAAU,0CAAG,sBAAsB,CAAC,mCAAI,EAAE,CAAC;QAExE,MAAA,OAAO,CAAC,SAAS,oCAAjB,OAAO,CAAC,SAAS,GAAK,SAAS,EAAC;QAEhC,MAAA,aAAa,CAAC,IAAI,oCAAlB,aAAa,CAAC,IAAI,GAAK,EAAE,EAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,IAAI,CACE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrC,GAAG,MAAM,CAAC;QACnC,CAAC;QAED,MAAM,IAAA,2BAAoB,EAAC,IAAI,kCAC1B,aAAa,KAChB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAE,OAAO,CAAC,SAAS,IAC5B,CAAC;QAEH,MAAM,WAAW,GAAG,CAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEtG,MAAM,IAAA,mBAAwB,EAAC,IAAI,gCACjC,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,IAAI,EACb,eAAe,EAAE,IAAI,EACrB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,IAAI,EACf,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,IAAI,IACZ,OAAO,KACV,QAAQ,EAAE,CAAE,WAAW,CAAE,IACzB,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,oFAAqF,WAAY,EAAE,CAAC,CAAC;IAEnH,CAAC;CAAA;AA1CD,sDA0CC;AAED,kBAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/microservice/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAGoB;AACpB,mCAAgD;AAChD,+CAA4C;AAC5C,+BAA4B;AAC5B,6DAAqE;AAGrE,SAAsB,qBAAqB,CACzC,IAAU,EACV,OAAoC;;;QAGpC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,aAAa,GAAG,MAAA,MAAA,MAAM,CAAC,UAAU,0CAAG,sBAAsB,CAAC,mCAAI,EAAE,CAAC;QAExE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAElC,IAAI,GAAG,IAAA,qBAAS,EAAC,IAAI,CAAC,CAAC;QACvB,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,EAAC;QAEpC,MAAA,aAAa,CAAC,IAAI,oCAAlB,aAAa,CAAC,IAAI,GAAK,EAAE,EAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,IAAI,CACE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrC,GAAG,MAAM,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,IAAA,2BAAoB,EAAC,IAAI,kCAC1B,aAAa,KAChB,wBAAwB,EAAE,aAAa,EACvC,IAAI;YACJ,SAAS,IACT,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC;QAEzB,MAAM,IAAA,mBAAwB,EAAC,IAAI,gCACjC,YAAY,EAAE,IAAI,IACf,OAAO,KACV,OAAO,EAAE,WAAW,IACpB,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,oFAAqF,WAAY,EAAE,CAAC,CAAC;IAEnH,CAAC;CAAA;AA5CD,sDA4CC;AAED,kBAAe,qBAAqB,CAAC"}
@@ -2,26 +2,121 @@
2
2
  "$schema": "http://json-schema.org/schema",
3
3
  "$id": "Microservice",
4
4
  "title": "",
5
- "allOf": [
6
- {
7
- "$ref": "../init-application/schema.json"
8
- },
9
- {
10
- "type": "object",
11
- "properties": {
12
- "name": {
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "The name of microservice",
10
+ "x-prompt": "Enter the name of the microservice?"
11
+ },
12
+ "directory": {
13
+ "type": "string",
14
+ "description": "The directory to create the microservice in"
15
+ },
16
+
17
+ "sentry": {
18
+ "type": "boolean",
19
+ "default": true,
20
+ "description": "Whether this service should use sentry",
21
+ "x-prompt": "Should this service use sentry?"
22
+ },
23
+ "skipFormat": {
24
+ "type": "boolean",
25
+ "default": false
26
+ },
27
+ "swagger": {
28
+ "type": "boolean",
29
+ "default": true,
30
+ "description": "Whether this service should use swagger",
31
+ "x-prompt": "Should this service support open-api config generation?"
32
+ },
33
+ "swaggerLive": {
34
+ "type": "boolean",
35
+ "default": false,
36
+ "description": "Whether this service should start a swagger live server"
37
+ },
38
+ "generateMain": {
39
+ "type": "boolean",
40
+ "description": "Whether the main file should be generated"
41
+ },
42
+ "healthIndicator": {
43
+ "type": "boolean",
44
+ "default": true,
45
+ "description": "Whether this service should use a health indicator",
46
+ "x-prompt": "Should this service have a health indicator endpoint?"
47
+ },
48
+ "healthIndicatorList": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "string"
52
+ },
53
+ "description": "A list of health indicators"
54
+ },
55
+ "validator": {
56
+ "type": "boolean",
57
+ "default": true,
58
+ "description": "Whether this service use the ValidationPipe",
59
+ "x-prompt": "Should this service use the ValidationPipe?"
60
+ },
61
+ "platform": {
62
+ "type": "string",
63
+ "enum": [
64
+ "express",
65
+ "fastify"
66
+ ],
67
+ "default": "express",
68
+ "x-prompt": "Whichever platform should be used?"
69
+ },
70
+ "port": {
71
+ "type": "number",
72
+ "description": "The default port where the server is listens"
73
+ },
74
+ "apiPrefix": {
75
+ "oneOf": [
76
+ {
13
77
  "type": "string",
14
- "description": "The name of microservice",
15
- "x-prompt": "Enter the name of the microservice?"
78
+ "description": "The default global api prefix"
16
79
  },
17
- "directory": {
18
- "type": "string",
19
- "description": "The directory to create the microservice in"
80
+ {
81
+ "description": "Disable the global api prefix",
82
+ "type": "boolean",
83
+ "const": false
20
84
  }
21
- },
22
- "required": [
23
- "name"
24
85
  ]
86
+ },
87
+ "sentryDsn": {
88
+ "type": "string",
89
+ "description": "Default sentry dsn"
90
+ },
91
+ "overwrite": {
92
+ "type": "boolean",
93
+ "default": false,
94
+ "description": "Whether to overwrite existing files"
95
+ },
96
+ "jwt": {
97
+ "type": "boolean",
98
+ "default": false,
99
+ "description": "Whether the application should use jwt",
100
+ "x-prompt": "Should this service use jwt?"
101
+ },
102
+ "openApi": {
103
+ "type": "boolean",
104
+ "default": false,
105
+ "description": "Whether the application should use openApi as client",
106
+ "x-prompt": "Should this service use an open api client?"
107
+ },
108
+ "apiConfigurationFile": {
109
+ "type": "string",
110
+ "description": "The api configuration file to use"
111
+ },
112
+ "standalone": {
113
+ "type": "boolean",
114
+ "default": false,
115
+ "description": "Whether the nest service should be standalone",
116
+ "x-prompt": "Should this service be standalone?"
25
117
  }
118
+ },
119
+ "required": [
120
+ "name"
26
121
  ]
27
122
  }