@rxap/plugin-nestjs 16.1.0-dev.0 → 16.1.0-dev.10

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 (95) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/LICENSE.md +621 -0
  3. package/README.md +137 -1
  4. package/executors.json +9 -0
  5. package/generators.json +87 -0
  6. package/package.json +39 -6
  7. package/src/executors/package-json/executor.d.ts +5 -0
  8. package/src/executors/package-json/executor.js +21 -0
  9. package/src/executors/package-json/executor.js.map +1 -0
  10. package/src/executors/package-json/schema.d.ts +1 -0
  11. package/src/executors/package-json/schema.json +9 -0
  12. package/src/generators/health-indicator/generator.d.ts +4 -0
  13. package/src/generators/health-indicator/generator.js +31 -0
  14. package/src/generators/health-indicator/generator.js.map +1 -0
  15. package/src/generators/health-indicator/index.d.ts +2 -0
  16. package/src/generators/health-indicator/index.js +7 -0
  17. package/src/generators/health-indicator/index.js.map +1 -0
  18. package/src/generators/health-indicator/schema.d.ts +4 -0
  19. package/src/generators/health-indicator/schema.json +29 -0
  20. package/src/generators/health-indicator-init/generator.d.ts +4 -0
  21. package/src/generators/health-indicator-init/generator.js +33 -0
  22. package/src/generators/health-indicator-init/generator.js.map +1 -0
  23. package/src/generators/health-indicator-init/index.d.ts +2 -0
  24. package/src/generators/health-indicator-init/index.js +7 -0
  25. package/src/generators/health-indicator-init/index.js.map +1 -0
  26. package/src/generators/health-indicator-init/schema.d.ts +3 -0
  27. package/src/generators/health-indicator-init/schema.json +19 -0
  28. package/src/generators/init/index.d.ts +2 -0
  29. package/src/generators/init/index.js +7 -0
  30. package/src/generators/init/index.js.map +1 -0
  31. package/src/generators/init/schema.d.ts +1 -0
  32. package/src/generators/init/schema.json +5 -0
  33. package/src/generators/init-application/files/Dockerfile__tmpl__ +21 -0
  34. package/src/generators/init-application/files/healthcheck.js__tmpl__ +38 -0
  35. package/src/generators/init-application/files/main.ts__tmpl__ +114 -0
  36. package/src/generators/init-application/generator.d.ts +0 -3
  37. package/src/generators/init-application/generator.js +382 -5
  38. package/src/generators/init-application/generator.js.map +1 -1
  39. package/src/generators/init-application/index.d.ts +2 -0
  40. package/src/generators/init-application/index.js +7 -0
  41. package/src/generators/init-application/index.js.map +1 -0
  42. package/src/generators/init-application/schema.d.ts +1 -1
  43. package/src/generators/init-application/schema.json +15 -15
  44. package/src/generators/init-library/generator.js +12 -17
  45. package/src/generators/init-library/generator.js.map +1 -1
  46. package/src/generators/init-library/index.d.ts +2 -0
  47. package/src/generators/init-library/index.js +7 -0
  48. package/src/generators/init-library/index.js.map +1 -0
  49. package/src/generators/init-library/schema.d.ts +1 -0
  50. package/src/generators/init-library/schema.json +5 -0
  51. package/src/generators/jwt/generator.d.ts +4 -0
  52. package/src/generators/jwt/generator.js +54 -0
  53. package/src/generators/jwt/generator.js.map +1 -0
  54. package/src/generators/jwt/index.d.ts +2 -0
  55. package/src/generators/jwt/index.js +7 -0
  56. package/src/generators/jwt/index.js.map +1 -0
  57. package/src/generators/jwt/schema.d.ts +3 -0
  58. package/src/generators/jwt/schema.json +15 -0
  59. package/src/generators/open-api/generator.d.ts +4 -0
  60. package/src/generators/open-api/generator.js +45 -0
  61. package/src/generators/open-api/generator.js.map +1 -0
  62. package/src/generators/open-api/index.d.ts +2 -0
  63. package/src/generators/open-api/index.js +7 -0
  64. package/src/generators/open-api/index.js.map +1 -0
  65. package/src/generators/open-api/schema.d.ts +3 -0
  66. package/src/generators/open-api/schema.json +15 -0
  67. package/src/generators/sentry/generator.d.ts +4 -0
  68. package/src/generators/sentry/generator.js +146 -0
  69. package/src/generators/sentry/generator.js.map +1 -0
  70. package/src/generators/sentry/index.d.ts +2 -0
  71. package/src/generators/sentry/index.js +7 -0
  72. package/src/generators/sentry/index.js.map +1 -0
  73. package/src/generators/sentry/schema.d.ts +5 -0
  74. package/src/generators/sentry/schema.json +27 -0
  75. package/src/generators/swagger/files/environments/environment.swagger.ts__tmpl__ +8 -0
  76. package/src/generators/swagger/files/swagger.ts__tmpl__ +21 -0
  77. package/src/generators/swagger/generator.d.ts +4 -0
  78. package/src/generators/swagger/generator.js +87 -0
  79. package/src/generators/swagger/generator.js.map +1 -0
  80. package/src/generators/swagger/index.d.ts +2 -0
  81. package/src/generators/swagger/index.js +7 -0
  82. package/src/generators/swagger/index.js.map +1 -0
  83. package/src/generators/swagger/schema.d.ts +3 -0
  84. package/src/generators/swagger/schema.json +19 -0
  85. package/src/generators/validator/generator.d.ts +4 -0
  86. package/src/generators/validator/generator.js +14 -0
  87. package/src/generators/validator/generator.js.map +1 -0
  88. package/src/generators/validator/index.d.ts +2 -0
  89. package/src/generators/validator/index.js +7 -0
  90. package/src/generators/validator/index.js.map +1 -0
  91. package/src/generators/validator/schema.d.ts +3 -0
  92. package/src/generators/validator/schema.json +19 -0
  93. package/src/index.d.ts +1 -0
  94. package/src/index.js +3 -1
  95. package/src/index.js.map +1 -1
@@ -11,27 +11,21 @@
11
11
  "type": "string"
12
12
  }
13
13
  },
14
- "google": {
15
- "type": "boolean",
16
- "default": false,
17
- "description": "Whether this service will be deployed on google resources",
18
- "x-prompt": "Is this service deployed on google resources?"
19
- },
20
14
  "sentry": {
21
15
  "type": "boolean",
22
- "default": false,
16
+ "default": true,
23
17
  "description": "Whether this service should use sentry",
24
18
  "x-prompt": "Should this service use sentry?"
25
19
  },
26
20
  "swagger": {
27
21
  "type": "boolean",
28
- "default": false,
22
+ "default": true,
29
23
  "description": "Whether this service should use swagger",
30
- "x-prompt": "Should this service expose a swagger endpoint?"
24
+ "x-prompt": "Should this service support open-api config generation?"
31
25
  },
32
26
  "healthIndicator": {
33
27
  "type": "boolean",
34
- "default": false,
28
+ "default": true,
35
29
  "description": "Whether this service should use a health indicator",
36
30
  "x-prompt": "Should this service have a health indicator endpoint?"
37
31
  },
@@ -48,6 +42,12 @@
48
42
  "description": "Whether this service use the ValidationPipe",
49
43
  "x-prompt": "Should this service use the ValidationPipe?"
50
44
  },
45
+ "statusRegister": {
46
+ "type": "boolean",
47
+ "default": true,
48
+ "description": "Whether the application should register to status service",
49
+ "x-prompt": "Should this service register to status service?"
50
+ },
51
51
  "platform": {
52
52
  "type": "string",
53
53
  "enum": [
@@ -59,9 +59,7 @@
59
59
  },
60
60
  "port": {
61
61
  "type": "number",
62
- "default": 3000,
63
- "description": "The default port where the server is listens",
64
- "x-prompt": "Enter the default port?"
62
+ "description": "The default port where the server is listens"
65
63
  },
66
64
  "apiPrefix": {
67
65
  "type": "string",
@@ -87,13 +85,15 @@
87
85
  "jwt": {
88
86
  "type": "boolean",
89
87
  "default": false,
90
- "description": "Whether the application should use jwt"
88
+ "description": "Whether the application should use jwt",
89
+ "x-prompt": "Should this service use jwt?"
91
90
  },
92
91
  "openApi": {
93
92
  "alias": "open-api",
94
93
  "type": "boolean",
95
94
  "default": false,
96
- "description": "Whether the application should use openApi as client"
95
+ "description": "Whether the application should use openApi as client",
96
+ "x-prompt": "Should this service use an open api client?"
97
97
  }
98
98
  },
99
99
  "required": []
@@ -4,6 +4,7 @@ exports.initLibraryGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
6
  const generator_utilities_1 = require("@rxap/generator-utilities");
7
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
7
8
  const skip_non_nest_project_1 = require("../../lib/skip-non-nest-project");
8
9
  function skipProject(tree, options, project, projectName) {
9
10
  if ((0, skip_non_nest_project_1.SkipNonNestProject)(tree, options, project, projectName)) {
@@ -15,25 +16,19 @@ function skipProject(tree, options, project, projectName) {
15
16
  return false;
16
17
  }
17
18
  function setGeneralTargetDefaults(tree) {
18
- var _a, _b, _c, _d;
19
- var _e;
20
19
  const nxJson = (0, devkit_1.readNxJson)(tree);
21
- (_a = nxJson.targetDefaults) !== null && _a !== void 0 ? _a : (nxJson.targetDefaults = {});
22
- (_b = (_e = nxJson.targetDefaults)['build']) !== null && _b !== void 0 ? _b : (_e['build'] = { dependsOn: ['^build'] });
23
- if (!((_d = (_c = nxJson.targetDefaults['build']) === null || _c === void 0 ? void 0 : _c.dependsOn) === null || _d === void 0 ? void 0 : _d.includes('check-version'))) {
24
- nxJson.targetDefaults['build'].dependsOn.push('check-version');
25
- }
20
+ (0, workspace_utilities_1.CoerceTargetDefaultsDependency)(nxJson, 'build', 'check-version');
26
21
  (0, devkit_1.updateNxJson)(tree, nxJson);
27
22
  }
28
- function updateProjectTargets(project) {
29
- var _a;
30
- (_a = project.targets) !== null && _a !== void 0 ? _a : (project.targets = {});
31
- project.targets['check-version'] = {
32
- executor: '@rxap/plugin-library:check-version',
33
- options: {
34
- packageName: '@nestjs/core',
35
- },
36
- };
23
+ function updateProjectTargets(tree, project) {
24
+ if ((0, generator_utilities_1.IsPublishable)(tree, project)) {
25
+ (0, workspace_utilities_1.CoerceTarget)(project, 'check-version', {
26
+ executor: '@rxap/plugin-library:check-version',
27
+ options: {
28
+ packageName: '@nestjs/core',
29
+ },
30
+ });
31
+ }
37
32
  }
38
33
  function initLibraryGenerator(tree, options) {
39
34
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -44,7 +39,7 @@ function initLibraryGenerator(tree, options) {
44
39
  continue;
45
40
  }
46
41
  console.log(`init project: ${projectName}`);
47
- updateProjectTargets(project);
42
+ updateProjectTargets(tree, project);
48
43
  // apply changes to the project configuration
49
44
  (0, devkit_1.updateProjectConfiguration)(tree, projectName, project);
50
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-library/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAOoB;AACpB,mEAAkE;AAClE,2EAAqE;AAGrE,SAAS,WAAW,CAClB,IAAU,EACV,OAAuC,EACvC,OAA6B,EAC7B,WAAmB;IAGnB,IAAI,IAAA,0CAAkB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;QAC3D,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAA,2CAAqB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;QAC9D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AAEf,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAU;;;IAC1C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAChC,MAAA,MAAM,CAAC,cAAc,oCAArB,MAAM,CAAC,cAAc,GAAK,EAAE,EAAC;IAE7B,YAAA,MAAM,CAAC,cAAc,EAAC,OAAO,wCAAP,OAAO,IAAM,EAAE,SAAS,EAAE,CAAE,QAAQ,CAAE,EAAE,EAAC;IAE/D,IAAI,CAAC,CAAA,MAAA,MAAA,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,0CAAE,SAAS,0CAAE,QAAQ,CAAC,eAAe,CAAC,CAAA,EAAE;QACzE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChE;IAED,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA6B;;IAEzD,MAAA,OAAO,CAAC,OAAO,oCAAf,OAAO,CAAC,OAAO,GAAK,EAAE,EAAC;IAEvB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG;QACjC,QAAQ,EAAE,oCAAoC;QAC9C,OAAO,EAAE;YACP,WAAW,EAAE,cAAc;SAC5B;KACF,CAAC;AAEJ,CAAC;AAED,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAAuC;;QAEvC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;QAEvD,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAE/B,KAAK,MAAM,CAAE,WAAW,EAAE,OAAO,CAAE,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAElE,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBACpD,SAAS;aACV;YAED,OAAO,CAAC,GAAG,CAAC,iBAAkB,WAAY,EAAE,CAAC,CAAC;YAE9C,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAG9B,6CAA6C;YAC7C,IAAA,mCAA0B,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;SACxD;IACH,CAAC;CAAA;AAtBD,oDAsBC;AAED,kBAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-library/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAOoB;AACpB,mEAGmC;AACnC,mEAGmC;AACnC,2EAAqE;AAGrE,SAAS,WAAW,CAClB,IAAU,EACV,OAAuC,EACvC,OAA6B,EAC7B,WAAmB;IAGnB,IAAI,IAAA,0CAAkB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;QAC3D,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAA,2CAAqB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;QAC9D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AAEf,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAU;IAC1C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAA,oDAA8B,EAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAEjE,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU,EAAE,OAA6B;IAErE,IAAI,IAAA,mCAAa,EAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QAChC,IAAA,kCAAY,EAAC,OAAO,EAAE,eAAe,EAAE;YACrC,QAAQ,EAAE,oCAAoC;YAC9C,OAAO,EAAE;gBACP,WAAW,EAAE,cAAc;aAC5B;SACF,CAAC,CAAC;KACJ;AAEH,CAAC;AAED,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAAuC;;QAEvC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;QAEvD,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAE/B,KAAK,MAAM,CAAE,WAAW,EAAE,OAAO,CAAE,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAElE,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;gBACpD,SAAS;aACV;YAED,OAAO,CAAC,GAAG,CAAC,iBAAkB,WAAY,EAAE,CAAC,CAAC;YAE9C,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAGpC,6CAA6C;YAC7C,IAAA,mCAA0B,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;SACxD;IACH,CAAC;CAAA;AAtBD,oDAsBC;AAED,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("../init-application/schema").InitApplicationGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/init-library/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export interface InitLibraryGeneratorSchema {
2
2
  projects?: string[];
3
+ overwrite?: boolean;
3
4
  }
@@ -10,6 +10,11 @@
10
10
  "items": {
11
11
  "type": "string"
12
12
  }
13
+ },
14
+ "overwrite": {
15
+ "type": "boolean",
16
+ "default": false,
17
+ "description": "Whether to overwrite existing files"
13
18
  }
14
19
  },
15
20
  "required": []
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { JwtGeneratorSchema } from './schema';
3
+ export declare function jwtGenerator(tree: Tree, options: JwtGeneratorSchema): Promise<void>;
4
+ export default jwtGenerator;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jwtGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("@rxap/ts-morph");
6
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
7
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
8
+ const ts_morph_2 = require("ts-morph");
9
+ function UpdateAppModule(tree, options) {
10
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
11
+ project: options.project,
12
+ }, (project, [sourceFile]) => {
13
+ (0, ts_morph_1.CoerceNestModuleProvider)(sourceFile, {
14
+ providerObject: 'JwtGuardProvider',
15
+ structures: [
16
+ {
17
+ namedImports: ['JwtGuardProvider'],
18
+ moduleSpecifier: '@rxap/nest-jwt',
19
+ },
20
+ ],
21
+ });
22
+ (0, ts_morph_1.CoerceNestModuleImport)(sourceFile, {
23
+ moduleName: 'JwtModule',
24
+ structures: [
25
+ {
26
+ namedImports: ['JwtModule'],
27
+ moduleSpecifier: '@nestjs/jwt',
28
+ },
29
+ {
30
+ moduleSpecifier: '@nestjs/config',
31
+ namedImports: ['ConfigService'],
32
+ },
33
+ ],
34
+ importWriter: w => {
35
+ w.writeLine('JwtModule.registerAsync(');
36
+ ts_morph_2.Writers.object({
37
+ inject: '[ ConfigService ]',
38
+ useFactory: '(config: ConfigService) => ({})',
39
+ })(w);
40
+ w.write(')');
41
+ },
42
+ });
43
+ }, ['/app/app.module.ts']);
44
+ }
45
+ function jwtGenerator(tree, options) {
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ UpdateAppModule(tree, options);
48
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@rxap/nest-jwt', 'latest', { soft: true });
49
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@nestjs/jwt', 'latest', { soft: true });
50
+ });
51
+ }
52
+ exports.jwtGenerator = jwtGenerator;
53
+ exports.default = jwtGenerator;
54
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/jwt/generator.ts"],"names":[],"mappings":";;;;AACA,6CAGwB;AACxB,iEAAuE;AACvE,mEAAqE;AACrE,uCAAmC;AAInC,SAAS,eAAe,CAAC,IAAU,EAAE,OAA8B;IAEjE,IAAA,gDAA2B,EACzB,IAAI,EACJ;QACE,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,EACD,CAAC,OAAO,EAAE,CAAE,UAAU,CAAE,EAAE,EAAE;QAE1B,IAAA,mCAAwB,EAAC,UAAU,EAAE;YACnC,cAAc,EAAE,kBAAkB;YAClC,UAAU,EAAE;gBACV;oBACE,YAAY,EAAE,CAAE,kBAAkB,CAAE;oBACpC,eAAe,EAAE,gBAAgB;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,IAAA,iCAAsB,EACpB,UAAU,EACV;YACE,UAAU,EAAE,WAAW;YACvB,UAAU,EAAE;gBACV;oBACE,YAAY,EAAE,CAAE,WAAW,CAAE;oBAC7B,eAAe,EAAE,aAAa;iBAC/B;gBACD;oBACE,eAAe,EAAE,gBAAgB;oBACjC,YAAY,EAAE,CAAE,eAAe,CAAE;iBAClC;aACF;YACD,YAAY,EAAE,CAAC,CAAC,EAAE;gBAChB,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;gBACxC,kBAAO,CAAC,MAAM,CAAC;oBACb,MAAM,EAAE,mBAAmB;oBAC3B,UAAU,EAAE,iCAAiC;iBAC9C,CAAC,CAAC,CAAC,CAAC,CAAC;gBACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;SACF,CACF,CAAC;IAEJ,CAAC,EACD,CAAE,oBAAoB,CAAE,CACzB,CAAC;AAEJ,CAAC;AAED,SAAsB,YAAY,CAAC,IAAU,EAAE,OAA2B;;QACxE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAA,8CAAwB,EAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,MAAM,IAAA,8CAAwB,EAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;CAAA;AAJD,oCAIC;AAED,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").JwtGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/jwt/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface JwtGeneratorSchema {
2
+ project: string;
3
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "Jwt",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": ""
10
+ }
11
+ },
12
+ "required": [
13
+ "project"
14
+ ]
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { OpenApiGeneratorSchema } from './schema';
3
+ export declare function openApiGenerator(tree: Tree, options: OpenApiGeneratorSchema): Promise<void>;
4
+ export default openApiGenerator;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openApiGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("@rxap/ts-morph");
6
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
7
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
8
+ const ts_morph_2 = require("ts-morph");
9
+ function UpdateAppModule(tree, options) {
10
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
11
+ project: options.project,
12
+ }, (project, [sourceFile]) => {
13
+ (0, ts_morph_1.CoerceNestModuleImport)(sourceFile, {
14
+ moduleName: 'OpenApiModule',
15
+ structures: [
16
+ {
17
+ namedImports: ['OpenApiModule'],
18
+ moduleSpecifier: '@rxap/nest-open-api',
19
+ },
20
+ {
21
+ moduleSpecifier: '@nestjs/config',
22
+ namedImports: ['ConfigService'],
23
+ },
24
+ ],
25
+ importWriter: w => {
26
+ w.writeLine('OpenApiModule.registerAsync(');
27
+ ts_morph_2.Writers.object({
28
+ inject: '[ ConfigService ]',
29
+ imports: '[ ConfigModule ]',
30
+ useFactory: '(config: ConfigService) => ({})',
31
+ })(w);
32
+ w.write(')');
33
+ },
34
+ });
35
+ }, ['/app/app.module.ts']);
36
+ }
37
+ function openApiGenerator(tree, options) {
38
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ UpdateAppModule(tree, options);
40
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@rxap/nest-open-api', 'latest', { soft: true });
41
+ });
42
+ }
43
+ exports.openApiGenerator = openApiGenerator;
44
+ exports.default = openApiGenerator;
45
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/open-api/generator.ts"],"names":[],"mappings":";;;;AACA,6CAAwD;AACxD,iEAAuE;AACvE,mEAAqE;AACrE,uCAAmC;AAInC,SAAS,eAAe,CAAC,IAAU,EAAE,OAA8B;IAEjE,IAAA,gDAA2B,EACzB,IAAI,EACJ;QACE,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,EACD,CAAC,OAAO,EAAE,CAAE,UAAU,CAAE,EAAE,EAAE;QAE1B,IAAA,iCAAsB,EACpB,UAAU,EACV;YACE,UAAU,EAAE,eAAe;YAC3B,UAAU,EAAE;gBACV;oBACE,YAAY,EAAE,CAAE,eAAe,CAAE;oBACjC,eAAe,EAAE,qBAAqB;iBACvC;gBACD;oBACE,eAAe,EAAE,gBAAgB;oBACjC,YAAY,EAAE,CAAE,eAAe,CAAE;iBAClC;aACF;YACD,YAAY,EAAE,CAAC,CAAC,EAAE;gBAChB,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,kBAAO,CAAC,MAAM,CAAC;oBACb,MAAM,EAAE,mBAAmB;oBAC3B,OAAO,EAAE,kBAAkB;oBAC3B,UAAU,EAAE,iCAAiC;iBAC9C,CAAC,CAAC,CAAC,CAAC,CAAC;gBACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;SACF,CACF,CAAC;IAEJ,CAAC,EACD,CAAE,oBAAoB,CAAE,CACzB,CAAC;AAEJ,CAAC;AAED,SAAsB,gBAAgB,CACpC,IAAU,EACV,OAA+B;;QAE/B,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,IAAA,8CAAwB,EAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;CAAA;AAND,4CAMC;AAED,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").OpenApiGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/open-api/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface OpenApiGeneratorSchema {
2
+ project: string;
3
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "OpenApi",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": ""
10
+ }
11
+ },
12
+ "required": [
13
+ "project"
14
+ ]
15
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { SentryGeneratorSchema } from './schema';
3
+ export declare function sentryGenerator(tree: Tree, options: SentryGeneratorSchema): Promise<void>;
4
+ export default sentryGenerator;
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sentryGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ts_morph_1 = require("@rxap/ts-morph");
6
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
7
+ const workspace_utilities_1 = require("@rxap/workspace-utilities");
8
+ const ts_morph_2 = require("ts-morph");
9
+ function CoerceSentryModule(sourceFile, options) {
10
+ (0, ts_morph_1.CoerceNestModuleImport)(sourceFile, {
11
+ moduleName: 'SentryModule',
12
+ structures: [
13
+ {
14
+ moduleSpecifier: '@rxap/nest-sentry',
15
+ namedImports: ['SentryModule'],
16
+ },
17
+ {
18
+ moduleSpecifier: '@nestjs/config',
19
+ namedImports: ['ConfigService', 'ConfigModule'],
20
+ },
21
+ {
22
+ namedImports: ['environment'],
23
+ moduleSpecifier: '../environments/environment',
24
+ },
25
+ {
26
+ namedImports: ['GetLogLevels', 'SentryOptionsFactory'],
27
+ moduleSpecifier: '@rxap/nest-utilities',
28
+ },
29
+ ],
30
+ importWriter: w => {
31
+ w.writeLine('SentryModule.forRootAsync(');
32
+ ts_morph_2.Writers.object({
33
+ imports: '[ ConfigModule ]',
34
+ inject: '[ ConfigService ]',
35
+ useFactory: 'SentryOptionsFactory(environment)',
36
+ })(w);
37
+ w.writeLine(',');
38
+ ts_morph_2.Writers.object({
39
+ logLevels: 'GetLogLevels()',
40
+ });
41
+ w.write(')');
42
+ },
43
+ });
44
+ }
45
+ function CoerceSentryInterceptorOptionsProvider(sourceFile) {
46
+ (0, ts_morph_1.CoerceNestModuleProvider)(sourceFile, {
47
+ providerObject: {
48
+ provide: 'SENTRY_INTERCEPTOR_OPTIONS',
49
+ useValue: ts_morph_2.Writers.object({
50
+ filters: w1 => {
51
+ w1.write('[');
52
+ ts_morph_2.Writers.object({
53
+ type: 'HttpException',
54
+ filter: '(exception: HttpException) => 500 > exception.getStatus()',
55
+ })(w1);
56
+ w1.write(']');
57
+ },
58
+ }),
59
+ },
60
+ structures: [
61
+ {
62
+ namedImports: ['SENTRY_INTERCEPTOR_OPTIONS'],
63
+ moduleSpecifier: '@rxap/nest-sentry',
64
+ },
65
+ {
66
+ namedImports: ['HttpException'],
67
+ moduleSpecifier: '@nestjs/common',
68
+ },
69
+ ],
70
+ });
71
+ }
72
+ function CoerceAppInterceptorProvider(sourceFile) {
73
+ (0, ts_morph_1.CoerceNestModuleProvider)(sourceFile, {
74
+ providerObject: {
75
+ provide: 'APP_INTERCEPTOR',
76
+ useClass: 'SentryInterceptor',
77
+ },
78
+ structures: [
79
+ {
80
+ namedImports: ['APP_INTERCEPTOR'],
81
+ moduleSpecifier: '@nestjs/core',
82
+ },
83
+ {
84
+ namedImports: ['SentryInterceptor'],
85
+ moduleSpecifier: '@rxap/nest-sentry',
86
+ },
87
+ ],
88
+ });
89
+ }
90
+ function UpdateAppModule(tree, options) {
91
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
92
+ project: options.project,
93
+ }, (project, [sourceFile]) => {
94
+ CoerceSentryModule(sourceFile, options);
95
+ CoerceSentryInterceptorOptionsProvider(sourceFile);
96
+ CoerceAppInterceptorProvider(sourceFile);
97
+ }, ['/app/app.module.ts']);
98
+ }
99
+ function UpdateAppConfig(tree, options, projectName) {
100
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, {
101
+ project: options.project,
102
+ }, (project, [sourceFile]) => {
103
+ (0, ts_morph_1.CoerceNestAppConfig)(sourceFile, {
104
+ itemList: [
105
+ {
106
+ name: 'SENTRY_DSN',
107
+ defaultValue: options.dsn,
108
+ },
109
+ {
110
+ name: 'SENTRY_ENABLED',
111
+ defaultValue: 'environment.sentry?.enabled ?? false',
112
+ },
113
+ {
114
+ name: 'SENTRY_ENVIRONMENT',
115
+ },
116
+ {
117
+ name: 'SENTRY_RELEASE',
118
+ },
119
+ {
120
+ name: 'SENTRY_SERVER_NAME',
121
+ defaultValue: `process.env.ROOT_DOMAIN ?? '${projectName}'`,
122
+ },
123
+ {
124
+ name: 'SENTRY_DEBUG',
125
+ defaultValue: 'environment.sentry?.debug ?? false',
126
+ },
127
+ ],
128
+ });
129
+ (0, ts_morph_1.CoerceImports)(sourceFile, {
130
+ namedImports: ['environment'],
131
+ moduleSpecifier: '../environments/environment',
132
+ });
133
+ }, ['/app/app.config.ts?']);
134
+ }
135
+ function sentryGenerator(tree, options) {
136
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
137
+ UpdateAppModule(tree, options);
138
+ UpdateAppConfig(tree, options, options.project);
139
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@sentry/node', 'latest', { soft: true });
140
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@sentry/hub', 'latest', { soft: true });
141
+ yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@rxap/nest-sentry', 'latest', { soft: true });
142
+ });
143
+ }
144
+ exports.sentryGenerator = sentryGenerator;
145
+ exports.default = sentryGenerator;
146
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/sentry/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const schematic: (generatorOptions: import("./schema").SentryGeneratorSchema) => (tree: any, context: any) => Promise<any>;
2
+ export default schematic;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const generator_1 = require("./generator");
5
+ const schematic = (0, devkit_1.convertNxGenerator)(generator_1.default);
6
+ exports.default = schematic;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/sentry/index.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAoC;AAEpC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,mBAAS,CAAC,CAAC;AAChD,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface SentryGeneratorSchema {
2
+ project: string;
3
+ dsn?: string;
4
+ required?: boolean;
5
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "Sentry",
4
+ "title": "",
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 extend with sentry support?"
14
+ },
15
+ "dsn": {
16
+ "type": "string",
17
+ "description": "Default sentry dsn"
18
+ },
19
+ "required": {
20
+ "type": "boolean",
21
+ "description": "Whether or not the sentry dsn should be required to start the application"
22
+ }
23
+ },
24
+ "required": [
25
+ "project"
26
+ ]
27
+ }
@@ -0,0 +1,8 @@
1
+ import { Environment } from '@rxap/nest-utilities';
2
+
3
+ export const environment: Environment = {
4
+ name: 'swagger',
5
+ app: '<%= projectName %>',
6
+ production: true,
7
+ swagger: true,
8
+ };
@@ -0,0 +1,21 @@
1
+ import { NestFactory } from '@nestjs/core';
2
+ import {
3
+ DocumentBuilder,
4
+ SwaggerModule,
5
+ } from '@nestjs/swagger';
6
+ import { writeFileSync } from 'fs';
7
+ import { join } from 'path';
8
+ import { AppModule } from './app/app.module';
9
+
10
+ NestFactory
11
+ .create(AppModule)
12
+ .then(app => {
13
+ const options = new DocumentBuilder().build();
14
+ const document = SwaggerModule.createDocument(app, options);
15
+ const outputPath = join(__dirname, 'openapi.json');
16
+ console.log('write to: ' + outputPath);
17
+ writeFileSync(outputPath, JSON.stringify(document, null, 2));
18
+ return app.close();
19
+ })
20
+ .catch(e => console.error('failed to generate openapi: ' + e.message))
21
+ .then(() => console.log('DONE'));
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { SwaggerGeneratorSchema } from './schema';
3
+ export declare function swaggerGenerator(tree: Tree, options: SwaggerGeneratorSchema): Promise<void>;
4
+ export default swaggerGenerator;