@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.
- package/CHANGELOG.md +8 -0
- package/GETSTARTED.md +0 -0
- package/GUIDES.md +0 -0
- package/README.md +21 -0
- package/collection.json +74 -0
- package/package.json +67 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +3 -0
- package/src/index.js.map +1 -0
- package/src/schematics/crud/index.d.ts +3 -0
- package/src/schematics/crud/index.js +49 -0
- package/src/schematics/crud/index.js.map +1 -0
- package/src/schematics/crud/schema.d.ts +7 -0
- package/src/schematics/crud/schema.js +3 -0
- package/src/schematics/crud/schema.js.map +1 -0
- package/src/schematics/crud/schema.json +17 -0
- package/src/schematics/crud-init/index.d.ts +3 -0
- package/src/schematics/crud-init/index.js +14 -0
- package/src/schematics/crud-init/index.js.map +1 -0
- package/src/schematics/crud-init/schema.d.ts +4 -0
- package/src/schematics/crud-init/schema.js +3 -0
- package/src/schematics/crud-init/schema.js.map +1 -0
- package/src/schematics/crud-init/schema.json +18 -0
- package/src/schematics/crud-service/add-module-export.d.ts +4 -0
- package/src/schematics/crud-service/add-module-export.js +29 -0
- package/src/schematics/crud-service/add-module-export.js.map +1 -0
- package/src/schematics/crud-service/add-module-provider.d.ts +4 -0
- package/src/schematics/crud-service/add-module-provider.js +29 -0
- package/src/schematics/crud-service/add-module-provider.js.map +1 -0
- package/src/schematics/crud-service/coerce-class-method.d.ts +2 -0
- package/src/schematics/crud-service/coerce-class-method.js +10 -0
- package/src/schematics/crud-service/coerce-class-method.js.map +1 -0
- package/src/schematics/crud-service/coerce-class-property.d.ts +2 -0
- package/src/schematics/crud-service/coerce-class-property.js +10 -0
- package/src/schematics/crud-service/coerce-class-property.js.map +1 -0
- package/src/schematics/crud-service/coerce-collection-enum.d.ts +4 -0
- package/src/schematics/crud-service/coerce-collection-enum.js +29 -0
- package/src/schematics/crud-service/coerce-collection-enum.js.map +1 -0
- package/src/schematics/crud-service/coerce-module-class.d.ts +2 -0
- package/src/schematics/crud-service/coerce-module-class.js +32 -0
- package/src/schematics/crud-service/coerce-module-class.js.map +1 -0
- package/src/schematics/crud-service/coerce-source-file-rule.d.ts +11 -0
- package/src/schematics/crud-service/coerce-source-file-rule.js +29 -0
- package/src/schematics/crud-service/coerce-source-file-rule.js.map +1 -0
- package/src/schematics/crud-service/crud-class/create-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/create-method.js +69 -0
- package/src/schematics/crud-service/crud-class/create-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/delete-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/delete-method.js +46 -0
- package/src/schematics/crud-service/crud-class/delete-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/exists-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/exists-method.js +46 -0
- package/src/schematics/crud-service/crud-class/exists-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/find-in-group-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/find-in-group-method.js +37 -0
- package/src/schematics/crud-service/crud-class/find-in-group-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/find-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/find-method.js +46 -0
- package/src/schematics/crud-service/crud-class/find-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/get-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/get-method.js +52 -0
- package/src/schematics/crud-service/crud-class/get-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/update-field-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/update-field-method.js +68 -0
- package/src/schematics/crud-service/crud-class/update-field-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class/update-method.d.ts +3 -0
- package/src/schematics/crud-service/crud-class/update-method.js +59 -0
- package/src/schematics/crud-service/crud-class/update-method.js.map +1 -0
- package/src/schematics/crud-service/crud-class.d.ts +3 -0
- package/src/schematics/crud-service/crud-class.js +125 -0
- package/src/schematics/crud-service/crud-class.js.map +1 -0
- package/src/schematics/crud-service/dto-class/create-dto-class.d.ts +3 -0
- package/src/schematics/crud-service/dto-class/create-dto-class.js +26 -0
- package/src/schematics/crud-service/dto-class/create-dto-class.js.map +1 -0
- package/src/schematics/crud-service/dto-class/dto-class.d.ts +3 -0
- package/src/schematics/crud-service/dto-class/dto-class.js +133 -0
- package/src/schematics/crud-service/dto-class/dto-class.js.map +1 -0
- package/src/schematics/crud-service/dto-class/update-dto-class.d.ts +3 -0
- package/src/schematics/crud-service/dto-class/update-dto-class.js +28 -0
- package/src/schematics/crud-service/dto-class/update-dto-class.js.map +1 -0
- package/src/schematics/crud-service/index.d.ts +3 -0
- package/src/schematics/crud-service/index.js +215 -0
- package/src/schematics/crud-service/index.js.map +1 -0
- package/src/schematics/crud-service/options.d.ts +11 -0
- package/src/schematics/crud-service/options.js +3 -0
- package/src/schematics/crud-service/options.js.map +1 -0
- package/src/schematics/crud-service/schema.d.ts +53 -0
- package/src/schematics/crud-service/schema.js +3 -0
- package/src/schematics/crud-service/schema.js.map +1 -0
- package/src/schematics/crud-service/schema.json +57 -0
- package/src/schematics/feature-microservice/index.d.ts +11 -0
- package/src/schematics/feature-microservice/index.js +65 -0
- package/src/schematics/feature-microservice/index.js.map +1 -0
- package/src/schematics/feature-microservice/schema.d.ts +15 -0
- package/src/schematics/feature-microservice/schema.json +69 -0
- package/src/schematics/frontend-microservice/index.d.ts +11 -0
- package/src/schematics/frontend-microservice/index.js +61 -0
- package/src/schematics/frontend-microservice/index.js.map +1 -0
- package/src/schematics/frontend-microservice/schema.d.ts +16 -0
- package/src/schematics/frontend-microservice/schema.json +75 -0
- package/src/schematics/health-indicator/add-health-endpoint.d.ts +2 -0
- package/src/schematics/health-indicator/add-health-endpoint.js +58 -0
- package/src/schematics/health-indicator/add-health-endpoint.js.map +1 -0
- package/src/schematics/health-indicator/add-health-indicator.d.ts +2 -0
- package/src/schematics/health-indicator/add-health-indicator.js +61 -0
- package/src/schematics/health-indicator/add-health-indicator.js.map +1 -0
- package/src/schematics/health-indicator/add-to-global-health-endpoint.d.ts +2 -0
- package/src/schematics/health-indicator/add-to-global-health-endpoint.js +54 -0
- package/src/schematics/health-indicator/add-to-global-health-endpoint.js.map +1 -0
- package/src/schematics/health-indicator/coerce-health-controller.d.ts +2 -0
- package/src/schematics/health-indicator/coerce-health-controller.js +25 -0
- package/src/schematics/health-indicator/coerce-health-controller.js.map +1 -0
- package/src/schematics/health-indicator/coerce-health-module.d.ts +2 -0
- package/src/schematics/health-indicator/coerce-health-module.js +48 -0
- package/src/schematics/health-indicator/coerce-health-module.js.map +1 -0
- package/src/schematics/health-indicator/index.d.ts +3 -0
- package/src/schematics/health-indicator/index.js +29 -0
- package/src/schematics/health-indicator/index.js.map +1 -0
- package/src/schematics/health-indicator/schema.d.ts +4 -0
- package/src/schematics/health-indicator/schema.json +29 -0
- package/src/schematics/health-indicator-init/index.d.ts +3 -0
- package/src/schematics/health-indicator-init/index.js +23 -0
- package/src/schematics/health-indicator-init/index.js.map +1 -0
- package/src/schematics/health-indicator-init/schema.d.ts +3 -0
- package/src/schematics/health-indicator-init/schema.json +19 -0
- package/src/schematics/init/files/Dockerfile.template +24 -0
- package/src/schematics/init/files/healthcheck.js.template +35 -0
- package/src/schematics/init/files/main.ts.template +77 -0
- package/src/schematics/init/index.d.ts +6 -0
- package/src/schematics/init/index.js +463 -0
- package/src/schematics/init/index.js.map +1 -0
- package/src/schematics/init/schema.d.ts +23 -0
- package/src/schematics/init/schema.json +103 -0
- package/src/schematics/jwt/index.d.ts +2 -0
- package/src/schematics/jwt/index.js +46 -0
- package/src/schematics/jwt/index.js.map +1 -0
- package/src/schematics/jwt/schema.d.ts +3 -0
- package/src/schematics/jwt/schema.json +15 -0
- package/src/schematics/microservice/index.d.ts +12 -0
- package/src/schematics/microservice/index.js +117 -0
- package/src/schematics/microservice/index.js.map +1 -0
- package/src/schematics/microservice/schema.d.ts +15 -0
- package/src/schematics/microservice/schema.json +69 -0
- package/src/schematics/open-api/index.d.ts +2 -0
- package/src/schematics/open-api/index.js +39 -0
- package/src/schematics/open-api/index.js.map +1 -0
- package/src/schematics/open-api/schema.d.ts +3 -0
- package/src/schematics/open-api/schema.json +15 -0
- package/src/schematics/sentry/index.d.ts +3 -0
- package/src/schematics/sentry/index.js +129 -0
- package/src/schematics/sentry/index.js.map +1 -0
- package/src/schematics/sentry/schema.d.ts +5 -0
- package/src/schematics/sentry/schema.json +27 -0
- package/src/schematics/swagger/files/environments/environment.swagger.ts.template +7 -0
- package/src/schematics/swagger/files/swagger.ts.template +19 -0
- package/src/schematics/swagger/index.d.ts +3 -0
- package/src/schematics/swagger/index.js +88 -0
- package/src/schematics/swagger/index.js.map +1 -0
- package/src/schematics/swagger/schema.d.ts +4 -0
- package/src/schematics/swagger/schema.json +19 -0
- package/src/schematics/validator/index.d.ts +3 -0
- package/src/schematics/validator/index.js +15 -0
- package/src/schematics/validator/index.js.map +1 -0
- package/src/schematics/validator/schema.d.ts +3 -0
- package/src/schematics/validator/schema.json +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/jwt/index.ts"],"names":[],"mappings":";;AAAA,2DAAmD;AACnD,mEAKmC;AACnC,qEAGoC;AACpC,uCAAmC;AAGnC,mBAAyB,OAA2B;IAClD,OAAO,GAAG,EAAE;QACV,OAAO,IAAA,kBAAK,EAAC;YACX,IAAA,sCAAgB,EAAC;gBACf,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,KAAK;gBACX,gBAAgB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE;oBAClC,IAAA,2CAAqB,EAAC,UAAU,EAAE,kBAAkB,EAAE;wBACpD;4BACE,YAAY,EAAE,CAAE,kBAAkB,CAAE;4BACpC,eAAe,EAAE,gBAAgB;yBAClC;qBACF,CAAC,CAAC;oBACH,IAAA,yCAAmB,EACjB,UAAU,EACV,WAAW,EACX;wBACE;4BACE,YAAY,EAAE,CAAE,WAAW,CAAE;4BAC7B,eAAe,EAAE,aAAa;yBAC/B;qBACF,EACD,CAAC,CAAC,EAAE;wBACF,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;wBACxC,kBAAO,CAAC,MAAM,CAAC;4BACb,MAAM,EAAE,mBAAmB;4BAC3B,UAAU,EAAE,iCAAiC;yBAC9C,CAAC,CAAC,CAAC,CAAC,CAAC;wBACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC,CACF,CAAC;oBACF,IAAA,mCAAa,EAAC,UAAU,EAAE;wBACxB,eAAe,EAAE,gBAAgB;wBACjC,YAAY,EAAE,CAAE,eAAe,CAAE;qBAClC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;YACF,IAAA,mDAA4B,EAAC,gBAAgB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACxE,IAAA,mDAA4B,EAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACrE,IAAA,0CAAmB,GAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AA1CD,4BA0CC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
2
|
+
import { Normalized } from '@rxap/utilities';
|
|
3
|
+
import { MicroserviceOptions } from './schema';
|
|
4
|
+
export interface NormalizedMicroserviceOptions extends Readonly<Normalized<MicroserviceOptions>> {
|
|
5
|
+
directory: string;
|
|
6
|
+
apiPrefix: string;
|
|
7
|
+
imageSuffix: string;
|
|
8
|
+
projectName: string;
|
|
9
|
+
port: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function NormalizeMicroserviceOptions(options: Readonly<MicroserviceOptions>): NormalizedMicroserviceOptions;
|
|
12
|
+
export default function (options: MicroserviceOptions): () => Rule;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NormalizeMicroserviceOptions = void 0;
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
|
|
6
|
+
const schematics_utilities_1 = require("@rxap/schematics-utilities");
|
|
7
|
+
const utilities_1 = require("@rxap/utilities");
|
|
8
|
+
const init_1 = require("../init");
|
|
9
|
+
function updateApiConfigurationFile({ apiConfigurationFile, projectName, apiPrefix }) {
|
|
10
|
+
if (apiConfigurationFile) {
|
|
11
|
+
return (0, schematics_1.chain)([
|
|
12
|
+
() => console.log('Update api configuration file ...'),
|
|
13
|
+
(tree) => {
|
|
14
|
+
const configApi = JSON.parse((0, schematics_utilities_1.CoerceFile)(tree, apiConfigurationFile, '{}', false));
|
|
15
|
+
configApi[projectName] = { baseUrl: `/${apiPrefix}` };
|
|
16
|
+
tree.overwrite(apiConfigurationFile, JSON.stringify(configApi, undefined, 2));
|
|
17
|
+
},
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
20
|
+
return (0, schematics_1.noop)();
|
|
21
|
+
}
|
|
22
|
+
function NormalizeMicroserviceOptions(options) {
|
|
23
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
24
|
+
const directory = (_a = options.directory) !== null && _a !== void 0 ? _a : 'service';
|
|
25
|
+
const prefix = directory.split('/').filter(Boolean).map(schematics_utilities_1.dasherize).join('-');
|
|
26
|
+
const name = (0, schematics_utilities_1.dasherize)(options.name).replace(new RegExp(`^${prefix}-`), '');
|
|
27
|
+
const randomPort = (_b = options.randomPort) !== null && _b !== void 0 ? _b : true;
|
|
28
|
+
let port = (_c = options.port) !== null && _c !== void 0 ? _c : 0;
|
|
29
|
+
if (!port) {
|
|
30
|
+
if (randomPort) {
|
|
31
|
+
port = Math.floor(Math.random() * 1000 + 3000);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
port = 3000;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return Object.seal({
|
|
38
|
+
name,
|
|
39
|
+
dsn: (_d = options.dsn) !== null && _d !== void 0 ? _d : null,
|
|
40
|
+
directory,
|
|
41
|
+
imageRegistry: (_e = options.imageRegistry) !== null && _e !== void 0 ? _e : null,
|
|
42
|
+
imageName: (_f = options.imageName) !== null && _f !== void 0 ? _f : null,
|
|
43
|
+
imageSuffix: (_g = options.imageSuffix) !== null && _g !== void 0 ? _g : `/${['service', name].join('/')}`,
|
|
44
|
+
apiPrefix: (_h = options.apiPrefix) !== null && _h !== void 0 ? _h : ['api', name].join('/'),
|
|
45
|
+
projectName: [prefix, name].join('-'),
|
|
46
|
+
randomPort,
|
|
47
|
+
port,
|
|
48
|
+
apiConfigurationFile: (_j = options.apiConfigurationFile) !== null && _j !== void 0 ? _j : null,
|
|
49
|
+
overwrite: (_k = options.overwrite) !== null && _k !== void 0 ? _k : false,
|
|
50
|
+
openApi: (_l = options.openApi) !== null && _l !== void 0 ? _l : false,
|
|
51
|
+
jwt: (_m = options.jwt) !== null && _m !== void 0 ? _m : false,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
exports.NormalizeMicroserviceOptions = NormalizeMicroserviceOptions;
|
|
55
|
+
function default_1(options) {
|
|
56
|
+
const normalizedOptions = NormalizeMicroserviceOptions(options);
|
|
57
|
+
const { name, dsn, directory, imageRegistry, imageName, imageSuffix, apiPrefix, projectName, port, apiConfigurationFile, overwrite, openApi, jwt, } = normalizedOptions;
|
|
58
|
+
return function () {
|
|
59
|
+
console.log(`Generate microservice '${name}' in project '${projectName}' in directory '${directory !== null && directory !== void 0 ? directory : '<<default>>'}' ...`);
|
|
60
|
+
return (0, schematics_1.chain)([
|
|
61
|
+
() => console.log('Generate nest application ...'),
|
|
62
|
+
(0, schematics_utilities_1.ExecuteExternalSchematic)('@nx/nest', 'application', {
|
|
63
|
+
name,
|
|
64
|
+
directory,
|
|
65
|
+
e2eTestRunner: 'none',
|
|
66
|
+
}),
|
|
67
|
+
() => console.log('Init nest application ...'),
|
|
68
|
+
(0, schematics_utilities_1.ExecuteSchematic)('init', {
|
|
69
|
+
project: projectName,
|
|
70
|
+
google: false,
|
|
71
|
+
sentry: true,
|
|
72
|
+
swagger: true,
|
|
73
|
+
healthIndicator: true,
|
|
74
|
+
healthIndicatorList: [],
|
|
75
|
+
validator: true,
|
|
76
|
+
platform: 'express',
|
|
77
|
+
pluginDockerOptions: {
|
|
78
|
+
imageRegistry,
|
|
79
|
+
imageName,
|
|
80
|
+
imageSuffix,
|
|
81
|
+
save: true,
|
|
82
|
+
},
|
|
83
|
+
sentryDsn: dsn,
|
|
84
|
+
port,
|
|
85
|
+
apiPrefix,
|
|
86
|
+
overwrite,
|
|
87
|
+
openApi,
|
|
88
|
+
jwt,
|
|
89
|
+
}),
|
|
90
|
+
() => console.log('Add deploy target to project configuration ...'),
|
|
91
|
+
(0, schematics_utilities_1.ExecuteExternalSchematic)('@nx/workspace', 'run-commands', {
|
|
92
|
+
name: 'deploy',
|
|
93
|
+
project: projectName,
|
|
94
|
+
command: 'echo ok',
|
|
95
|
+
}),
|
|
96
|
+
updateApiConfigurationFile(normalizedOptions),
|
|
97
|
+
() => console.log('Update project configuration ...'),
|
|
98
|
+
(0, schematics_utilities_1.UpdateProjectConfigurationRule)(project => {
|
|
99
|
+
var _a;
|
|
100
|
+
(_a = project.tags) !== null && _a !== void 0 ? _a : (project.tags = []);
|
|
101
|
+
project.tags.push('service');
|
|
102
|
+
project.tags.push('nest');
|
|
103
|
+
project.tags.push('sentry');
|
|
104
|
+
project.tags.push('open-api');
|
|
105
|
+
project.tags = project.tags.filter((0, utilities_1.unique)());
|
|
106
|
+
}, { projectName }),
|
|
107
|
+
() => console.log(`Coerce nest module and controller '${name}' ...`),
|
|
108
|
+
(0, schematics_ts_morph_1.CoerceNestController)({
|
|
109
|
+
name,
|
|
110
|
+
project: projectName,
|
|
111
|
+
}),
|
|
112
|
+
(0, init_1.CleanUp)({ project: projectName }),
|
|
113
|
+
]);
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
exports.default = default_1;
|
|
117
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/microservice/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface MicroserviceOptions {
|
|
2
|
+
name: string;
|
|
3
|
+
dsn?: string;
|
|
4
|
+
directory: string;
|
|
5
|
+
imageRegistry?: string;
|
|
6
|
+
imageName?: string;
|
|
7
|
+
imageSuffix?: string;
|
|
8
|
+
apiPrefix?: string;
|
|
9
|
+
port?: number;
|
|
10
|
+
randomPort?: boolean;
|
|
11
|
+
apiConfigurationFile?: string;
|
|
12
|
+
overwrite: boolean;
|
|
13
|
+
openApi: boolean;
|
|
14
|
+
jwt: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "microservice",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "The name of microservice",
|
|
9
|
+
"x-prompt": "Enter the name of the microservice?"
|
|
10
|
+
},
|
|
11
|
+
"dsn": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Default sentry dsn"
|
|
14
|
+
},
|
|
15
|
+
"directory": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "The directory to create the microservice in"
|
|
18
|
+
},
|
|
19
|
+
"imageRegistry": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The image registry to use",
|
|
22
|
+
"default": "registry.gitlab.com"
|
|
23
|
+
},
|
|
24
|
+
"imageName": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "The image name to use",
|
|
27
|
+
"default": "service"
|
|
28
|
+
},
|
|
29
|
+
"imageSuffix": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "The image suffix to use"
|
|
32
|
+
},
|
|
33
|
+
"apiPrefix": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The api prefix to use"
|
|
36
|
+
},
|
|
37
|
+
"port": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"description": "The port to use"
|
|
40
|
+
},
|
|
41
|
+
"randomPort": {
|
|
42
|
+
"type": "boolean",
|
|
43
|
+
"description": "Use a random port between 3000 and 4000"
|
|
44
|
+
},
|
|
45
|
+
"apiConfigurationFile": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "The api configuration file to use"
|
|
48
|
+
},
|
|
49
|
+
"overwrite": {
|
|
50
|
+
"type": "boolean",
|
|
51
|
+
"default": false,
|
|
52
|
+
"description": "Whether to overwrite existing files"
|
|
53
|
+
},
|
|
54
|
+
"jwt": {
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
"default": false,
|
|
57
|
+
"description": "Whether the application should use jwt"
|
|
58
|
+
},
|
|
59
|
+
"openApi": {
|
|
60
|
+
"alias": "open-api",
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"default": false,
|
|
63
|
+
"description": "Whether the application should use openApi as client"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"required": [
|
|
67
|
+
"name"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.AddNestModuleImport)(sourceFile, 'OpenApiModule', [
|
|
15
|
+
{
|
|
16
|
+
namedImports: ['OpenApiModule'],
|
|
17
|
+
moduleSpecifier: '@rxap/nest-open-api',
|
|
18
|
+
},
|
|
19
|
+
], w => {
|
|
20
|
+
w.writeLine('OpenApiModule.registerAsync(');
|
|
21
|
+
ts_morph_1.Writers.object({
|
|
22
|
+
inject: '[ ConfigService ]',
|
|
23
|
+
useFactory: '(config: ConfigService) => ({})',
|
|
24
|
+
})(w);
|
|
25
|
+
w.write(')');
|
|
26
|
+
});
|
|
27
|
+
(0, schematics_ts_morph_1.CoerceImports)(sourceFile, {
|
|
28
|
+
moduleSpecifier: '@nestjs/config',
|
|
29
|
+
namedImports: ['ConfigService'],
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
}),
|
|
33
|
+
(0, schematics_utilities_1.AddPackageJsonDependencyRule)('@rxap/nest-open-api', 'latest', { soft: true }),
|
|
34
|
+
(0, schematics_utilities_1.InstallNodePackages)(),
|
|
35
|
+
]);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
exports.default = default_1;
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/open-api/index.ts"],"names":[],"mappings":";;AAAA,2DAAmD;AACnD,mEAImC;AACnC,qEAGoC;AACpC,uCAAmC;AAGnC,mBAAyB,OAA+B;IACtD,OAAO,GAAG,EAAE;QACV,OAAO,IAAA,kBAAK,EAAC;YACX,IAAA,sCAAgB,EAAC;gBACf,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,KAAK;gBACX,gBAAgB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE;oBAClC,IAAA,yCAAmB,EACjB,UAAU,EACV,eAAe,EACf;wBACE;4BACE,YAAY,EAAE,CAAE,eAAe,CAAE;4BACjC,eAAe,EAAE,qBAAqB;yBACvC;qBACF,EACD,CAAC,CAAC,EAAE;wBACF,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;wBAC5C,kBAAO,CAAC,MAAM,CAAC;4BACb,MAAM,EAAE,mBAAmB;4BAC3B,UAAU,EAAE,iCAAiC;yBAC9C,CAAC,CAAC,CAAC,CAAC,CAAC;wBACN,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC,CACF,CAAC;oBACF,IAAA,mCAAa,EAAC,UAAU,EAAE;wBACxB,eAAe,EAAE,gBAAgB;wBACjC,YAAY,EAAE,CAAE,eAAe,CAAE;qBAClC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;YACF,IAAA,mDAA4B,EAAC,qBAAqB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7E,IAAA,0CAAmB,GAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAnCD,4BAmCC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
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 path_1 = require("path");
|
|
7
|
+
const ts_morph_1 = require("ts-morph");
|
|
8
|
+
function updateProjectPackageJson(options) {
|
|
9
|
+
return tree => {
|
|
10
|
+
var _a, _b, _c, _d, _e;
|
|
11
|
+
var _f;
|
|
12
|
+
const projectRoot = (0, schematics_utilities_1.GetProjectRoot)(tree, options.project);
|
|
13
|
+
const rootPackageJson = (0, schematics_utilities_1.GetPackageJson)(tree);
|
|
14
|
+
const packageJsonFilePath = (0, path_1.join)(projectRoot, 'package.json');
|
|
15
|
+
if (!tree.exists(packageJsonFilePath)) {
|
|
16
|
+
tree.create(packageJsonFilePath, '{}');
|
|
17
|
+
}
|
|
18
|
+
const content = JSON.parse((_b = (_a = tree.read(packageJsonFilePath)) === null || _a === void 0 ? void 0 : _a.toString('utf-8')) !== null && _b !== void 0 ? _b : '{}');
|
|
19
|
+
(_c = content.dependencies) !== null && _c !== void 0 ? _c : (content.dependencies = {});
|
|
20
|
+
(_d = (_f = content.dependencies)['@sentry/hub']) !== null && _d !== void 0 ? _d : (_f['@sentry/hub'] = (_e = rootPackageJson.dependencies['@sentry/hub']) !== null && _e !== void 0 ? _e : 'latest');
|
|
21
|
+
tree.overwrite(packageJsonFilePath, JSON.stringify(content, undefined, 2));
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function CoerceSentryModule(sourceFile, options) {
|
|
25
|
+
(0, schematics_ts_morph_1.AddNestModuleImport)(sourceFile, 'SentryModule', [
|
|
26
|
+
{
|
|
27
|
+
moduleSpecifier: '@rxap/nest-sentry',
|
|
28
|
+
namedImports: ['SentryModule'],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
moduleSpecifier: '@nestjs/config',
|
|
32
|
+
namedImports: ['ConfigService', 'ConfigModule'],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
namedImports: ['environment'],
|
|
36
|
+
moduleSpecifier: '../environments/environment',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
namedImports: ['DetermineEnvironment', 'DetermineRelease'],
|
|
40
|
+
moduleSpecifier: '@rxap/nest-utilities',
|
|
41
|
+
},
|
|
42
|
+
], w => {
|
|
43
|
+
w.writeLine('SentryModule.forRootAsync(');
|
|
44
|
+
ts_morph_1.Writers.object({
|
|
45
|
+
imports: '[ ConfigModule ]',
|
|
46
|
+
inject: '[ ConfigService ]',
|
|
47
|
+
useFactory: w1 => {
|
|
48
|
+
w1.write('async (config: ConfigService) => (');
|
|
49
|
+
ts_morph_1.Writers.object({
|
|
50
|
+
dsn: options.required ? `config.getOrThrow('SENTRY_DSN')` : `config.get('SENTRY_DSN')`,
|
|
51
|
+
enabled: options.required ?
|
|
52
|
+
`config.get('SENTRY_ENABLED', false)` :
|
|
53
|
+
`config.get('SENTRY_DSN') && config.get('SENTRY_ENABLED', false)`,
|
|
54
|
+
environment: `config.get('SENTRY_ENVIRONMENT', DetermineEnvironment(environment))`,
|
|
55
|
+
release: `config.get('SENTRY_RELEASE', DetermineRelease(environment))`,
|
|
56
|
+
serverName: `config.get('SENTRY_SERVER_NAME')`,
|
|
57
|
+
debug: `config.get('SENTRY_DEBUG', false)`,
|
|
58
|
+
tracesSampleRate: `1.0`,
|
|
59
|
+
logLevels: `[ 'error', 'warn' ]`,
|
|
60
|
+
maxValueLength: 'Number.MAX_SAFE_INTEGER',
|
|
61
|
+
})(w1);
|
|
62
|
+
w1.write(')');
|
|
63
|
+
},
|
|
64
|
+
})(w);
|
|
65
|
+
w.write(')');
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function CoerceSentryInterceptorOptionsProvider(sourceFile) {
|
|
69
|
+
(0, schematics_ts_morph_1.AddNestModuleProvider)(sourceFile, {
|
|
70
|
+
provide: 'SENTRY_INTERCEPTOR_OPTIONS',
|
|
71
|
+
useValue: ts_morph_1.Writers.object({
|
|
72
|
+
filters: w1 => {
|
|
73
|
+
w1.write('[');
|
|
74
|
+
ts_morph_1.Writers.object({
|
|
75
|
+
type: 'HttpException',
|
|
76
|
+
filter: '(exception: HttpException) => 500 > exception.getStatus()',
|
|
77
|
+
})(w1);
|
|
78
|
+
w1.write(']');
|
|
79
|
+
},
|
|
80
|
+
}),
|
|
81
|
+
}, [
|
|
82
|
+
{
|
|
83
|
+
namedImports: ['SENTRY_INTERCEPTOR_OPTIONS'],
|
|
84
|
+
moduleSpecifier: '@rxap/nest-sentry',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
namedImports: ['HttpException'],
|
|
88
|
+
moduleSpecifier: '@nestjs/common',
|
|
89
|
+
},
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
92
|
+
function CoerceAppInterceptorProvider(sourceFile) {
|
|
93
|
+
(0, schematics_ts_morph_1.AddNestModuleProvider)(sourceFile, {
|
|
94
|
+
provide: 'APP_INTERCEPTOR',
|
|
95
|
+
useClass: 'SentryInterceptor',
|
|
96
|
+
}, [
|
|
97
|
+
{
|
|
98
|
+
namedImports: ['APP_INTERCEPTOR'],
|
|
99
|
+
moduleSpecifier: '@nestjs/core',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
namedImports: ['SentryInterceptor'],
|
|
103
|
+
moduleSpecifier: '@rxap/nest-sentry',
|
|
104
|
+
},
|
|
105
|
+
]);
|
|
106
|
+
}
|
|
107
|
+
function UpdateAppModule(options) {
|
|
108
|
+
return (0, schematics_ts_morph_1.TsMorphNestProjectTransformRule)({
|
|
109
|
+
project: options.project,
|
|
110
|
+
}, (project, [sourceFile]) => {
|
|
111
|
+
CoerceSentryModule(sourceFile, options);
|
|
112
|
+
CoerceSentryInterceptorOptionsProvider(sourceFile);
|
|
113
|
+
CoerceAppInterceptorProvider(sourceFile);
|
|
114
|
+
}, ['/app/app.module.ts']);
|
|
115
|
+
}
|
|
116
|
+
function default_1(options) {
|
|
117
|
+
return () => {
|
|
118
|
+
return (0, schematics_1.chain)([
|
|
119
|
+
UpdateAppModule(options),
|
|
120
|
+
(0, schematics_utilities_1.AddPackageJsonDependencyRule)('@sentry/node', 'latest', { soft: true }),
|
|
121
|
+
(0, schematics_utilities_1.AddPackageJsonDependencyRule)('@sentry/hub', 'latest', { soft: true }),
|
|
122
|
+
(0, schematics_utilities_1.AddPackageJsonDependencyRule)('@rxap/nest-sentry', 'latest', { soft: true }),
|
|
123
|
+
// updateProjectPackageJson(options),
|
|
124
|
+
(0, schematics_utilities_1.InstallNodePackages)(),
|
|
125
|
+
]);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
exports.default = default_1;
|
|
129
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/sentry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Adds Modules, Services and Packages to integrate sentry",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
4
|
+
"$id": "sentry",
|
|
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,19 @@
|
|
|
1
|
+
import { NestFactory } from '@nestjs/core';
|
|
2
|
+
import { AppModule } from './app/app.module';
|
|
3
|
+
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
|
|
4
|
+
import { writeFileSync } from 'fs';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
|
|
7
|
+
NestFactory.create(AppModule).then(app => {
|
|
8
|
+
const options = new DocumentBuilder().build();
|
|
9
|
+
const document = SwaggerModule.createDocument(app, options);
|
|
10
|
+
|
|
11
|
+
const outputPath = join(__dirname,'openapi.json')
|
|
12
|
+
console.log('write to: ' + outputPath);
|
|
13
|
+
|
|
14
|
+
writeFileSync(outputPath, JSON.stringify(document, null, 2));
|
|
15
|
+
|
|
16
|
+
return app.close();
|
|
17
|
+
}).catch(e => console.error('failed to generate openapi: ' + e.message))
|
|
18
|
+
.then(() => console.log('DONE'));
|
|
19
|
+
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
+
const schematics_utilities_1 = require("@rxap/schematics-utilities");
|
|
6
|
+
function default_1(options) {
|
|
7
|
+
return (host) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
8
|
+
const projectSourceRoot = (0, schematics_utilities_1.GetProjectSourceRoot)(host, options.project);
|
|
9
|
+
return (0, schematics_1.chain)([
|
|
10
|
+
(0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./files'), [
|
|
11
|
+
(0, schematics_1.applyTemplates)(options),
|
|
12
|
+
(0, schematics_1.move)(projectSourceRoot),
|
|
13
|
+
(0, schematics_1.forEach)(entry => {
|
|
14
|
+
if (host.exists(entry.path)) {
|
|
15
|
+
host.overwrite(entry.path, entry.content);
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return entry;
|
|
19
|
+
}),
|
|
20
|
+
])),
|
|
21
|
+
(0, schematics_utilities_1.UpdateProjectConfigurationRule)(project => {
|
|
22
|
+
var _a;
|
|
23
|
+
(_a = project.targets) !== null && _a !== void 0 ? _a : (project.targets = {});
|
|
24
|
+
const build = project.targets['build'];
|
|
25
|
+
if (!build) {
|
|
26
|
+
throw new schematics_1.SchematicsException('The selected project does not have a build target');
|
|
27
|
+
}
|
|
28
|
+
if (!build.options) {
|
|
29
|
+
throw new schematics_1.SchematicsException('The selected project has the build target without options');
|
|
30
|
+
}
|
|
31
|
+
if (!build.options['outputPath']) {
|
|
32
|
+
throw new schematics_1.SchematicsException('The selected project has the build target without the option outputPath');
|
|
33
|
+
}
|
|
34
|
+
if (!build.options['tsConfig']) {
|
|
35
|
+
throw new schematics_1.SchematicsException('The selected project has the build target without the option tsConfig');
|
|
36
|
+
}
|
|
37
|
+
project.targets['swagger-build'] = {
|
|
38
|
+
executor: '@nx/webpack:webpack',
|
|
39
|
+
outputs: ['{options.outputPath}'],
|
|
40
|
+
options: {
|
|
41
|
+
outputPath: build.options['outputPath'].replace('dist/apps/', 'dist/swagger/'),
|
|
42
|
+
main: `${project.sourceRoot}/swagger.ts`,
|
|
43
|
+
target: `node`,
|
|
44
|
+
compiler: `tsc`,
|
|
45
|
+
webpackConfig: `${project.root}/webpack.config.js`,
|
|
46
|
+
transformers: ['@nestjs/swagger/plugin'],
|
|
47
|
+
tsConfig: build.options['tsConfig'],
|
|
48
|
+
fileReplacements: [
|
|
49
|
+
{
|
|
50
|
+
replace: `${project.sourceRoot}/environments/environment.ts`,
|
|
51
|
+
with: `${project.sourceRoot}/environments/environment.swagger.ts`,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
project.targets['swagger-generate'] = {
|
|
57
|
+
executor: '@nx/js:node',
|
|
58
|
+
outputs: [
|
|
59
|
+
`{options.outputPath}/open-api.json`,
|
|
60
|
+
],
|
|
61
|
+
options: {
|
|
62
|
+
buildTarget: `${options.project}:swagger-build`,
|
|
63
|
+
watch: false,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}, { projectName: options.project }),
|
|
67
|
+
(0, schematics_utilities_1.UpdateNxJsonRule)(nxJson => {
|
|
68
|
+
var _a, _b, _c, _d;
|
|
69
|
+
var _e, _f, _g;
|
|
70
|
+
(_a = nxJson.tasksRunnerOptions) !== null && _a !== void 0 ? _a : (nxJson.tasksRunnerOptions = {});
|
|
71
|
+
(_b = (_e = nxJson.tasksRunnerOptions)['default']) !== null && _b !== void 0 ? _b : (_e['default'] = { runner: 'nx-cloud', options: {} });
|
|
72
|
+
(_c = (_f = nxJson.tasksRunnerOptions['default']).options) !== null && _c !== void 0 ? _c : (_f.options = {});
|
|
73
|
+
(_d = (_g = nxJson.tasksRunnerOptions['default'].options)['cacheableOperations']) !== null && _d !== void 0 ? _d : (_g['cacheableOperations'] = []);
|
|
74
|
+
if (!nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].includes('swagger-build')) {
|
|
75
|
+
nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].push('swagger-build');
|
|
76
|
+
}
|
|
77
|
+
if (!nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].includes('swagger-generate')) {
|
|
78
|
+
nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].push('swagger-generate');
|
|
79
|
+
}
|
|
80
|
+
}),
|
|
81
|
+
(0, schematics_utilities_1.AddPackageJsonDependencyRule)('swagger-ui-express', 'latest', { soft: true }),
|
|
82
|
+
(0, schematics_utilities_1.AddPackageJsonDependencyRule)('@nestjs/swagger', 'latest', { soft: true }),
|
|
83
|
+
(0, schematics_utilities_1.InstallNodePackages)(),
|
|
84
|
+
]);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
exports.default = default_1;
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/swagger/index.ts"],"names":[],"mappings":"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"}
|