@rxap/schematic-nestjs 0.0.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/GETSTARTED.md +0 -0
  3. package/GUIDES.md +0 -0
  4. package/README.md +21 -0
  5. package/collection.json +74 -0
  6. package/package.json +67 -0
  7. package/src/index.d.ts +1 -0
  8. package/src/index.js +3 -0
  9. package/src/index.js.map +1 -0
  10. package/src/schematics/crud/index.d.ts +3 -0
  11. package/src/schematics/crud/index.js +49 -0
  12. package/src/schematics/crud/index.js.map +1 -0
  13. package/src/schematics/crud/schema.d.ts +7 -0
  14. package/src/schematics/crud/schema.js +3 -0
  15. package/src/schematics/crud/schema.js.map +1 -0
  16. package/src/schematics/crud/schema.json +17 -0
  17. package/src/schematics/crud-init/index.d.ts +3 -0
  18. package/src/schematics/crud-init/index.js +14 -0
  19. package/src/schematics/crud-init/index.js.map +1 -0
  20. package/src/schematics/crud-init/schema.d.ts +4 -0
  21. package/src/schematics/crud-init/schema.js +3 -0
  22. package/src/schematics/crud-init/schema.js.map +1 -0
  23. package/src/schematics/crud-init/schema.json +18 -0
  24. package/src/schematics/crud-service/add-module-export.d.ts +4 -0
  25. package/src/schematics/crud-service/add-module-export.js +29 -0
  26. package/src/schematics/crud-service/add-module-export.js.map +1 -0
  27. package/src/schematics/crud-service/add-module-provider.d.ts +4 -0
  28. package/src/schematics/crud-service/add-module-provider.js +29 -0
  29. package/src/schematics/crud-service/add-module-provider.js.map +1 -0
  30. package/src/schematics/crud-service/coerce-class-method.d.ts +2 -0
  31. package/src/schematics/crud-service/coerce-class-method.js +10 -0
  32. package/src/schematics/crud-service/coerce-class-method.js.map +1 -0
  33. package/src/schematics/crud-service/coerce-class-property.d.ts +2 -0
  34. package/src/schematics/crud-service/coerce-class-property.js +10 -0
  35. package/src/schematics/crud-service/coerce-class-property.js.map +1 -0
  36. package/src/schematics/crud-service/coerce-collection-enum.d.ts +4 -0
  37. package/src/schematics/crud-service/coerce-collection-enum.js +29 -0
  38. package/src/schematics/crud-service/coerce-collection-enum.js.map +1 -0
  39. package/src/schematics/crud-service/coerce-module-class.d.ts +2 -0
  40. package/src/schematics/crud-service/coerce-module-class.js +32 -0
  41. package/src/schematics/crud-service/coerce-module-class.js.map +1 -0
  42. package/src/schematics/crud-service/coerce-source-file-rule.d.ts +11 -0
  43. package/src/schematics/crud-service/coerce-source-file-rule.js +29 -0
  44. package/src/schematics/crud-service/coerce-source-file-rule.js.map +1 -0
  45. package/src/schematics/crud-service/crud-class/create-method.d.ts +3 -0
  46. package/src/schematics/crud-service/crud-class/create-method.js +69 -0
  47. package/src/schematics/crud-service/crud-class/create-method.js.map +1 -0
  48. package/src/schematics/crud-service/crud-class/delete-method.d.ts +3 -0
  49. package/src/schematics/crud-service/crud-class/delete-method.js +46 -0
  50. package/src/schematics/crud-service/crud-class/delete-method.js.map +1 -0
  51. package/src/schematics/crud-service/crud-class/exists-method.d.ts +3 -0
  52. package/src/schematics/crud-service/crud-class/exists-method.js +46 -0
  53. package/src/schematics/crud-service/crud-class/exists-method.js.map +1 -0
  54. package/src/schematics/crud-service/crud-class/find-in-group-method.d.ts +3 -0
  55. package/src/schematics/crud-service/crud-class/find-in-group-method.js +37 -0
  56. package/src/schematics/crud-service/crud-class/find-in-group-method.js.map +1 -0
  57. package/src/schematics/crud-service/crud-class/find-method.d.ts +3 -0
  58. package/src/schematics/crud-service/crud-class/find-method.js +46 -0
  59. package/src/schematics/crud-service/crud-class/find-method.js.map +1 -0
  60. package/src/schematics/crud-service/crud-class/get-method.d.ts +3 -0
  61. package/src/schematics/crud-service/crud-class/get-method.js +52 -0
  62. package/src/schematics/crud-service/crud-class/get-method.js.map +1 -0
  63. package/src/schematics/crud-service/crud-class/update-field-method.d.ts +3 -0
  64. package/src/schematics/crud-service/crud-class/update-field-method.js +68 -0
  65. package/src/schematics/crud-service/crud-class/update-field-method.js.map +1 -0
  66. package/src/schematics/crud-service/crud-class/update-method.d.ts +3 -0
  67. package/src/schematics/crud-service/crud-class/update-method.js +59 -0
  68. package/src/schematics/crud-service/crud-class/update-method.js.map +1 -0
  69. package/src/schematics/crud-service/crud-class.d.ts +3 -0
  70. package/src/schematics/crud-service/crud-class.js +125 -0
  71. package/src/schematics/crud-service/crud-class.js.map +1 -0
  72. package/src/schematics/crud-service/dto-class/create-dto-class.d.ts +3 -0
  73. package/src/schematics/crud-service/dto-class/create-dto-class.js +26 -0
  74. package/src/schematics/crud-service/dto-class/create-dto-class.js.map +1 -0
  75. package/src/schematics/crud-service/dto-class/dto-class.d.ts +3 -0
  76. package/src/schematics/crud-service/dto-class/dto-class.js +133 -0
  77. package/src/schematics/crud-service/dto-class/dto-class.js.map +1 -0
  78. package/src/schematics/crud-service/dto-class/update-dto-class.d.ts +3 -0
  79. package/src/schematics/crud-service/dto-class/update-dto-class.js +28 -0
  80. package/src/schematics/crud-service/dto-class/update-dto-class.js.map +1 -0
  81. package/src/schematics/crud-service/index.d.ts +3 -0
  82. package/src/schematics/crud-service/index.js +215 -0
  83. package/src/schematics/crud-service/index.js.map +1 -0
  84. package/src/schematics/crud-service/options.d.ts +11 -0
  85. package/src/schematics/crud-service/options.js +3 -0
  86. package/src/schematics/crud-service/options.js.map +1 -0
  87. package/src/schematics/crud-service/schema.d.ts +53 -0
  88. package/src/schematics/crud-service/schema.js +3 -0
  89. package/src/schematics/crud-service/schema.js.map +1 -0
  90. package/src/schematics/crud-service/schema.json +57 -0
  91. package/src/schematics/feature-microservice/index.d.ts +11 -0
  92. package/src/schematics/feature-microservice/index.js +65 -0
  93. package/src/schematics/feature-microservice/index.js.map +1 -0
  94. package/src/schematics/feature-microservice/schema.d.ts +15 -0
  95. package/src/schematics/feature-microservice/schema.json +69 -0
  96. package/src/schematics/frontend-microservice/index.d.ts +11 -0
  97. package/src/schematics/frontend-microservice/index.js +61 -0
  98. package/src/schematics/frontend-microservice/index.js.map +1 -0
  99. package/src/schematics/frontend-microservice/schema.d.ts +16 -0
  100. package/src/schematics/frontend-microservice/schema.json +75 -0
  101. package/src/schematics/health-indicator/add-health-endpoint.d.ts +2 -0
  102. package/src/schematics/health-indicator/add-health-endpoint.js +58 -0
  103. package/src/schematics/health-indicator/add-health-endpoint.js.map +1 -0
  104. package/src/schematics/health-indicator/add-health-indicator.d.ts +2 -0
  105. package/src/schematics/health-indicator/add-health-indicator.js +61 -0
  106. package/src/schematics/health-indicator/add-health-indicator.js.map +1 -0
  107. package/src/schematics/health-indicator/add-to-global-health-endpoint.d.ts +2 -0
  108. package/src/schematics/health-indicator/add-to-global-health-endpoint.js +54 -0
  109. package/src/schematics/health-indicator/add-to-global-health-endpoint.js.map +1 -0
  110. package/src/schematics/health-indicator/coerce-health-controller.d.ts +2 -0
  111. package/src/schematics/health-indicator/coerce-health-controller.js +25 -0
  112. package/src/schematics/health-indicator/coerce-health-controller.js.map +1 -0
  113. package/src/schematics/health-indicator/coerce-health-module.d.ts +2 -0
  114. package/src/schematics/health-indicator/coerce-health-module.js +48 -0
  115. package/src/schematics/health-indicator/coerce-health-module.js.map +1 -0
  116. package/src/schematics/health-indicator/index.d.ts +3 -0
  117. package/src/schematics/health-indicator/index.js +29 -0
  118. package/src/schematics/health-indicator/index.js.map +1 -0
  119. package/src/schematics/health-indicator/schema.d.ts +4 -0
  120. package/src/schematics/health-indicator/schema.json +29 -0
  121. package/src/schematics/health-indicator-init/index.d.ts +3 -0
  122. package/src/schematics/health-indicator-init/index.js +23 -0
  123. package/src/schematics/health-indicator-init/index.js.map +1 -0
  124. package/src/schematics/health-indicator-init/schema.d.ts +3 -0
  125. package/src/schematics/health-indicator-init/schema.json +19 -0
  126. package/src/schematics/init/files/Dockerfile.template +24 -0
  127. package/src/schematics/init/files/healthcheck.js.template +35 -0
  128. package/src/schematics/init/files/main.ts.template +77 -0
  129. package/src/schematics/init/index.d.ts +6 -0
  130. package/src/schematics/init/index.js +463 -0
  131. package/src/schematics/init/index.js.map +1 -0
  132. package/src/schematics/init/schema.d.ts +23 -0
  133. package/src/schematics/init/schema.json +103 -0
  134. package/src/schematics/jwt/index.d.ts +2 -0
  135. package/src/schematics/jwt/index.js +46 -0
  136. package/src/schematics/jwt/index.js.map +1 -0
  137. package/src/schematics/jwt/schema.d.ts +3 -0
  138. package/src/schematics/jwt/schema.json +15 -0
  139. package/src/schematics/microservice/index.d.ts +12 -0
  140. package/src/schematics/microservice/index.js +117 -0
  141. package/src/schematics/microservice/index.js.map +1 -0
  142. package/src/schematics/microservice/schema.d.ts +15 -0
  143. package/src/schematics/microservice/schema.json +69 -0
  144. package/src/schematics/open-api/index.d.ts +2 -0
  145. package/src/schematics/open-api/index.js +39 -0
  146. package/src/schematics/open-api/index.js.map +1 -0
  147. package/src/schematics/open-api/schema.d.ts +3 -0
  148. package/src/schematics/open-api/schema.json +15 -0
  149. package/src/schematics/sentry/index.d.ts +3 -0
  150. package/src/schematics/sentry/index.js +129 -0
  151. package/src/schematics/sentry/index.js.map +1 -0
  152. package/src/schematics/sentry/schema.d.ts +5 -0
  153. package/src/schematics/sentry/schema.json +27 -0
  154. package/src/schematics/swagger/files/environments/environment.swagger.ts.template +7 -0
  155. package/src/schematics/swagger/files/swagger.ts.template +19 -0
  156. package/src/schematics/swagger/index.d.ts +3 -0
  157. package/src/schematics/swagger/index.js +88 -0
  158. package/src/schematics/swagger/index.js.map +1 -0
  159. package/src/schematics/swagger/schema.d.ts +4 -0
  160. package/src/schematics/swagger/schema.json +19 -0
  161. package/src/schematics/validator/index.d.ts +3 -0
  162. package/src/schematics/validator/index.js +15 -0
  163. package/src/schematics/validator/index.js.map +1 -0
  164. package/src/schematics/validator/schema.d.ts +3 -0
  165. package/src/schematics/validator/schema.json +19 -0
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CrudClass = void 0;
4
+ const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
5
+ const ts_morph_1 = require("ts-morph");
6
+ const create_method_1 = require("./crud-class/create-method");
7
+ const delete_method_1 = require("./crud-class/delete-method");
8
+ const exists_method_1 = require("./crud-class/exists-method");
9
+ const find_in_group_method_1 = require("./crud-class/find-in-group-method");
10
+ const find_method_1 = require("./crud-class/find-method");
11
+ const get_method_1 = require("./crud-class/get-method");
12
+ const update_method_1 = require("./crud-class/update-method");
13
+ const update_field_method_1 = require("./crud-class/update-field-method");
14
+ function CrudClass(sourceFile, options) {
15
+ const { classified, dtoName, dasherized } = options;
16
+ if (options.overwrite) {
17
+ // TODO : replace hack with correct implementation to remove all statements
18
+ const count = sourceFile.getStatements().length;
19
+ for (let i = 0; i < count; i++) {
20
+ sourceFile.removeStatement(0);
21
+ }
22
+ }
23
+ sourceFile.addImportDeclarations([
24
+ {
25
+ namedImports: [
26
+ 'InternalServerErrorException',
27
+ 'BadRequestException',
28
+ 'Logger',
29
+ 'Inject',
30
+ 'NotFoundException',
31
+ 'Injectable',
32
+ ],
33
+ moduleSpecifier: '@nestjs/common',
34
+ },
35
+ {
36
+ namedImports: ['validateSync'],
37
+ moduleSpecifier: 'class-validator',
38
+ },
39
+ {
40
+ namedImports: ['classToPlain', 'plainToClass'],
41
+ moduleSpecifier: 'class-transformer',
42
+ },
43
+ {
44
+ namedImports: ['FIRESTORE', 'Firestore', 'FirestoreErrorHandler'],
45
+ moduleSpecifier: '@rxap/nest-firebase',
46
+ },
47
+ {
48
+ namedImports: ['CrudTransformOptions'],
49
+ moduleSpecifier: './transform-options',
50
+ },
51
+ {
52
+ namedImports: ['CrudValidatorOptions'],
53
+ moduleSpecifier: './validator-options',
54
+ },
55
+ {
56
+ namedImports: ['ValidationException'],
57
+ moduleSpecifier: '@rxap/nest-utilities',
58
+ },
59
+ {
60
+ namedImports: ['FieldPath', 'Query', 'QuerySnapshot'],
61
+ moduleSpecifier: 'firebase-admin/firestore',
62
+ },
63
+ {
64
+ namedImports: [`${dtoName}`],
65
+ moduleSpecifier: `./${dasherized}/${dasherized}.crud.dto`,
66
+ },
67
+ {
68
+ namedImports: [`Collection`],
69
+ moduleSpecifier: `./collection`,
70
+ },
71
+ {
72
+ namedImports: [`Create${dtoName}`],
73
+ moduleSpecifier: `./${dasherized}/create-${dasherized}.crud.dto`,
74
+ },
75
+ {
76
+ namedImports: [`Update${dtoName}`],
77
+ moduleSpecifier: `./${dasherized}/update-${dasherized}.crud.dto`,
78
+ },
79
+ ]);
80
+ const className = classified + 'CrudService';
81
+ const methods = [
82
+ (0, create_method_1.CreateMethod)(options, className),
83
+ (0, delete_method_1.DeleteMethod)(options, className),
84
+ (0, update_method_1.UpdateMethod)(options, className),
85
+ (0, get_method_1.GetMethod)(options, className),
86
+ (0, exists_method_1.ExistsMethod)(options, className),
87
+ (0, update_field_method_1.UpdateFieldMethod)(options, className),
88
+ ];
89
+ if (!options.privateName) {
90
+ methods.push((0, find_method_1.FindMethod)(options, className));
91
+ methods.push((0, find_in_group_method_1.FindInGroupMethod)(options, className));
92
+ }
93
+ (0, schematics_ts_morph_1.CoerceClass)(sourceFile, className, {
94
+ isExported: true,
95
+ decorators: [
96
+ {
97
+ name: 'Injectable',
98
+ arguments: [],
99
+ },
100
+ ],
101
+ ctors: [
102
+ {
103
+ parameters: [
104
+ {
105
+ scope: ts_morph_1.Scope.Private,
106
+ isReadonly: true,
107
+ name: 'logger',
108
+ type: 'Logger',
109
+ decorators: [{ name: 'Inject', arguments: ['Logger'] }],
110
+ },
111
+ {
112
+ scope: ts_morph_1.Scope.Private,
113
+ isReadonly: true,
114
+ name: 'firestore',
115
+ type: 'Firestore',
116
+ decorators: [{ name: 'Inject', arguments: ['FIRESTORE'] }],
117
+ },
118
+ ],
119
+ },
120
+ ],
121
+ methods,
122
+ });
123
+ }
124
+ exports.CrudClass = CrudClass;
125
+ //# sourceMappingURL=crud-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-class.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SourceFile } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function CreateDtoClass(sourceFile: SourceFile, options: Options): void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateDtoClass = void 0;
4
+ const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ function CreateDtoClass(sourceFile, options) {
7
+ const { classified, dtoName, camelized, collection, parentCollectionList } = options;
8
+ (0, schematics_ts_morph_1.CoerceClass)(sourceFile, `Create${dtoName}`, {
9
+ isExported: true,
10
+ extends: writer => {
11
+ writer.write('OmitType(');
12
+ writer.write(`${dtoName},`);
13
+ writer.write(`[ ${['id', ...parentCollectionList.map(pc => (0, schematics_utilities_1.camelize)(pc) + 'Id')].map(id => `'${id}'`)
14
+ .join()} ] as const`);
15
+ writer.write(')');
16
+ },
17
+ });
18
+ sourceFile.addImportDeclarations([
19
+ {
20
+ namedImports: ['OmitType'],
21
+ moduleSpecifier: '@nestjs/swagger',
22
+ },
23
+ ]);
24
+ }
25
+ exports.CreateDtoClass = CreateDtoClass;
26
+ //# sourceMappingURL=create-dto-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-dto-class.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/dto-class/create-dto-class.ts"],"names":[],"mappings":";;;AAAA,mEAAwD;AACxD,qEAAsD;AAItD,SAAgB,cAAc,CAAC,UAAsB,EAAE,OAAgB;IAErE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IAErF,IAAA,iCAAW,EAAC,UAAU,EAAE,SAAU,OAAQ,EAAE,EAAE;QAC5C,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,MAAM,CAAC,EAAE;YAChB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAI,OAAQ,GAAG,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,KAAM,CAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,+BAAQ,EAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,EAAG,GAAG,CAAC;iBACtB,IAAI,EAAG,aAAa,CAAC,CAAC;YAC1G,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;IAEH,UAAU,CAAC,qBAAqB,CAAC;QAC/B;YACE,YAAY,EAAE,CAAE,UAAU,CAAE;YAC5B,eAAe,EAAE,iBAAiB;SACnC;KACF,CAAC,CAAC;AAEL,CAAC;AAtBD,wCAsBC"}
@@ -0,0 +1,3 @@
1
+ import { SourceFile } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function DtoClass(sourceFile: SourceFile, options: Options): void;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DtoClass = void 0;
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
+ const coerce_class_method_1 = require("../coerce-class-method");
8
+ const coerce_class_property_1 = require("../coerce-class-property");
9
+ function DtoClass(sourceFile, options) {
10
+ const { classified, dtoName, camelized, collection, parentCollectionList } = options;
11
+ const classDeclaration = (0, schematics_ts_morph_1.CoerceClass)(sourceFile, dtoName, {
12
+ isExported: true,
13
+ });
14
+ (0, coerce_class_property_1.CoerceClassProperty)(classDeclaration, 'id', {
15
+ type: 'string',
16
+ scope: ts_morph_1.Scope.Public,
17
+ hasExclamationToken: true,
18
+ decorators: [
19
+ {
20
+ name: 'Expose',
21
+ arguments: [],
22
+ }, {
23
+ name: 'IsUUID',
24
+ arguments: [],
25
+ },
26
+ ],
27
+ });
28
+ for (const parentCollection of parentCollectionList) {
29
+ (0, coerce_class_property_1.CoerceClassProperty)(classDeclaration, (0, schematics_utilities_1.camelize)(parentCollection) + 'Id', {
30
+ type: 'string',
31
+ scope: ts_morph_1.Scope.Public,
32
+ hasExclamationToken: true,
33
+ decorators: [
34
+ {
35
+ name: 'Expose',
36
+ arguments: [],
37
+ }, {
38
+ name: 'IsUUID',
39
+ arguments: [],
40
+ },
41
+ ],
42
+ });
43
+ }
44
+ (0, coerce_class_method_1.CoerceClassMethod)(classDeclaration, `FromCreate${dtoName}`, {
45
+ isStatic: true,
46
+ scope: ts_morph_1.Scope.Public,
47
+ parameters: [
48
+ {
49
+ name: `create${dtoName}`,
50
+ type: `Create${dtoName}`,
51
+ },
52
+ ...parentCollectionList.map(parentCollection => ({
53
+ name: `${(0, schematics_utilities_1.camelize)(parentCollection)}Id`,
54
+ type: 'string',
55
+ })),
56
+ {
57
+ name: `${camelized}Id`,
58
+ type: 'string',
59
+ initializer: 'uuid()',
60
+ },
61
+ ],
62
+ statements: ts_morph_1.Writers.returnStatement(writer => {
63
+ writer.write('plainToClass(');
64
+ writer.writeLine(`${dtoName},`);
65
+ writer.writeLine('{');
66
+ writer.writeLine(`...classToPlain(create${dtoName}, CrudTransformOptions()),`);
67
+ writer.writeLine(`id: ${camelized}Id,`);
68
+ for (const parentCollection of parentCollectionList) {
69
+ writer.writeLine(`${(0, schematics_utilities_1.camelize)(parentCollection)}Id,`);
70
+ }
71
+ writer.writeLine('},');
72
+ writer.writeLine('CrudTransformOptions()');
73
+ writer.write(');');
74
+ }),
75
+ });
76
+ (0, coerce_class_method_1.CoerceClassMethod)(classDeclaration, `FromUpdate${dtoName}`, {
77
+ isStatic: true,
78
+ scope: ts_morph_1.Scope.Public,
79
+ parameters: [
80
+ {
81
+ name: `update${dtoName}`,
82
+ type: `Update${dtoName}`,
83
+ },
84
+ ...parentCollectionList.map(parentCollection => ({
85
+ name: `${(0, schematics_utilities_1.camelize)(parentCollection)}Id`,
86
+ type: 'string',
87
+ })),
88
+ {
89
+ name: `${camelized}Id`,
90
+ type: 'string',
91
+ initializer: 'uuid()',
92
+ },
93
+ ],
94
+ statements: ts_morph_1.Writers.returnStatement(writer => {
95
+ writer.write('plainToClass(');
96
+ writer.writeLine(`${dtoName},`);
97
+ writer.writeLine('{');
98
+ writer.writeLine(`...classToPlain(update${dtoName}, CrudTransformOptions()),`);
99
+ writer.writeLine(`id: ${camelized}Id,`);
100
+ for (const parentCollection of parentCollectionList) {
101
+ writer.writeLine(`${(0, schematics_utilities_1.camelize)(parentCollection)}Id,`);
102
+ }
103
+ writer.writeLine('},');
104
+ writer.writeLine('CrudTransformOptions()');
105
+ writer.write(');');
106
+ }),
107
+ });
108
+ sourceFile.addImportDeclarations([
109
+ {
110
+ namedImports: [
111
+ {
112
+ name: 'v4',
113
+ alias: 'uuid',
114
+ },
115
+ ],
116
+ moduleSpecifier: 'uuid',
117
+ },
118
+ {
119
+ namedImports: ['IsString', 'IsUUID'],
120
+ moduleSpecifier: 'class-validator',
121
+ },
122
+ {
123
+ namedImports: ['plainToClass', 'classToPlain', 'Expose'],
124
+ moduleSpecifier: 'class-transformer',
125
+ },
126
+ {
127
+ namedImports: ['CrudTransformOptions'],
128
+ moduleSpecifier: '../transform-options',
129
+ },
130
+ ]);
131
+ }
132
+ exports.DtoClass = DtoClass;
133
+ //# sourceMappingURL=dto-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto-class.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/dto-class/dto-class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SourceFile } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function UpdateDtoClass(sourceFile: SourceFile, options: Options): void;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateDtoClass = void 0;
4
+ const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ function UpdateDtoClass(sourceFile, options) {
7
+ const { classified, dtoName, camelized, collection, parentCollectionList } = options;
8
+ (0, schematics_ts_morph_1.CoerceClass)(sourceFile, `Update${dtoName}`, {
9
+ isExported: true,
10
+ extends: writer => {
11
+ writer.write('PartialType(');
12
+ writer.write('OmitType(');
13
+ writer.write(`${dtoName},`);
14
+ writer.write(`[ ${['id', ...parentCollectionList.map(pc => (0, schematics_utilities_1.camelize)(pc) + 'Id')].map(id => `'${id}'`)
15
+ .join()} ] as const`);
16
+ writer.write(')');
17
+ writer.write(')');
18
+ },
19
+ });
20
+ sourceFile.addImportDeclarations([
21
+ {
22
+ namedImports: ['OmitType', 'PartialType'],
23
+ moduleSpecifier: '@nestjs/swagger',
24
+ },
25
+ ]);
26
+ }
27
+ exports.UpdateDtoClass = UpdateDtoClass;
28
+ //# sourceMappingURL=update-dto-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-dto-class.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/dto-class/update-dto-class.ts"],"names":[],"mappings":";;;AAAA,mEAAwD;AACxD,qEAAsD;AAItD,SAAgB,cAAc,CAAC,UAAsB,EAAE,OAAgB;IAErE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IAErF,IAAA,iCAAW,EAAC,UAAU,EAAE,SAAU,OAAQ,EAAE,EAAE;QAC5C,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,MAAM,CAAC,EAAE;YAChB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAI,OAAQ,GAAG,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,KAAM,CAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,+BAAQ,EAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,EAAG,GAAG,CAAC;iBACtB,IAAI,EAAG,aAAa,CAAC,CAAC;YAC1G,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;IAEH,UAAU,CAAC,qBAAqB,CAAC;QAC/B;YACE,YAAY,EAAE,CAAE,UAAU,EAAE,aAAa,CAAE;YAC3C,eAAe,EAAE,iBAAiB;SACnC;KACF,CAAC,CAAC;AAEL,CAAC;AAxBD,wCAwBC"}
@@ -0,0 +1,3 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { CrudServiceSchema } from './schema';
3
+ export default function (options: CrudServiceSchema): Rule;
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@angular-devkit/core");
5
+ const schematics_1 = require("@angular-devkit/schematics");
6
+ const schematics_ts_morph_1 = require("@rxap/schematics-ts-morph");
7
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
8
+ const path_1 = require("path");
9
+ const ts_morph_1 = require("ts-morph");
10
+ const add_module_export_1 = require("./add-module-export");
11
+ const add_module_provider_1 = require("./add-module-provider");
12
+ const coerce_collection_enum_1 = require("./coerce-collection-enum");
13
+ const coerce_module_class_1 = require("./coerce-module-class");
14
+ const coerce_source_file_rule_1 = require("./coerce-source-file-rule");
15
+ const crud_class_1 = require("./crud-class");
16
+ const create_dto_class_1 = require("./dto-class/create-dto-class");
17
+ const dto_class_1 = require("./dto-class/dto-class");
18
+ const update_dto_class_1 = require("./dto-class/update-dto-class");
19
+ function default_1(options) {
20
+ options.collection2 = (options.collection2 ? (0, schematics_utilities_1.coerceArray)(options.collection2) : []).map(core_1.strings.dasherize);
21
+ return (host, context) => tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ var _a, _b;
23
+ const basePath = (0, path_1.join)('libs', options.project, 'src');
24
+ const project = new ts_morph_1.Project({
25
+ manipulationSettings: {
26
+ indentationText: ts_morph_1.IndentationText.TwoSpaces,
27
+ quoteKind: ts_morph_1.QuoteKind.Single,
28
+ useTrailingCommas: true,
29
+ },
30
+ useInMemoryFileSystem: true,
31
+ });
32
+ let generateOptions;
33
+ let camelized;
34
+ let classified;
35
+ let dasherized;
36
+ let dtoName;
37
+ if (options.private) {
38
+ const name = [options.name, options.private].join('-');
39
+ camelized = core_1.strings.camelize(name);
40
+ classified = core_1.strings.classify(name);
41
+ dasherized = core_1.strings.dasherize(name);
42
+ dtoName = `${classified}CrudDto`;
43
+ generateOptions = {
44
+ camelized,
45
+ classified,
46
+ dasherized,
47
+ // use the name without the private prefix.
48
+ // bs this document id of parent document should be
49
+ // used and for the current document the static id
50
+ // defined in privateName is used
51
+ documentId: `${core_1.strings.camelize(options.name)}Id`,
52
+ dtoName,
53
+ collection: core_1.strings.camelize(options.name),
54
+ parentCollectionList: options.collection2,
55
+ privateName: options.private,
56
+ overwrite: (_a = options.overwrite) !== null && _a !== void 0 ? _a : false,
57
+ };
58
+ }
59
+ else {
60
+ const name = options.name;
61
+ camelized = core_1.strings.camelize(name);
62
+ classified = core_1.strings.classify(name);
63
+ dasherized = core_1.strings.dasherize(name);
64
+ dtoName = `${classified}CrudDto`;
65
+ generateOptions = {
66
+ camelized,
67
+ classified,
68
+ dasherized,
69
+ documentId: `${camelized}Id`,
70
+ dtoName,
71
+ collection: dasherized,
72
+ parentCollectionList: options.collection2,
73
+ overwrite: (_b = options.overwrite) !== null && _b !== void 0 ? _b : false,
74
+ };
75
+ }
76
+ function AddToIndex(filePaths) {
77
+ return (tree, context) => {
78
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, 'index.ts', basePath)(tree, context);
79
+ const sourceFile = (0, schematics_ts_morph_1.CoerceSourceFile)(project, 'index.ts');
80
+ for (const filePath of filePaths) {
81
+ const exportExpression = `export * from '.${(0, path_1.join)('/', filePath.replace(/\.ts$/, ''))}';`;
82
+ if (!sourceFile.getFullText().includes(exportExpression)) {
83
+ sourceFile.addStatements(exportExpression);
84
+ }
85
+ }
86
+ };
87
+ }
88
+ function TransformOptionsInitializer(sourceFile) {
89
+ sourceFile.addImportDeclaration({
90
+ namedImports: ['ClassTransformOptions'],
91
+ moduleSpecifier: 'class-transformer',
92
+ });
93
+ sourceFile.addVariableStatement({
94
+ isExported: true,
95
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
96
+ declarations: [
97
+ {
98
+ name: 'crudTransformOptions',
99
+ type: 'ClassTransformOptions',
100
+ initializer: ts_morph_1.Writers.object({
101
+ enableImplicitConversion: 'true',
102
+ exposeDefaultValues: 'true',
103
+ excludeExtraneousValues: 'true',
104
+ exposeUnsetFields: 'false',
105
+ }),
106
+ },
107
+ ],
108
+ });
109
+ sourceFile.addFunction({
110
+ name: 'CrudTransformOptions',
111
+ isExported: true,
112
+ parameters: [
113
+ {
114
+ name: 'additionalOptions',
115
+ type: 'ClassTransformOptions',
116
+ initializer: '{}',
117
+ },
118
+ ],
119
+ returnType: 'ClassTransformOptions',
120
+ statements: ts_morph_1.Writers.returnStatement(`{ ...crudTransformOptions, ...additionalOptions, }`),
121
+ });
122
+ }
123
+ function ValidatorOptionsInitializer(sourceFile) {
124
+ sourceFile.addImportDeclaration({
125
+ namedImports: ['ValidatorOptions'],
126
+ moduleSpecifier: 'class-validator',
127
+ });
128
+ sourceFile.addVariableStatement({
129
+ isExported: true,
130
+ declarationKind: ts_morph_1.VariableDeclarationKind.Const,
131
+ declarations: [
132
+ {
133
+ name: 'crudValidatorOptions',
134
+ type: 'ValidatorOptions',
135
+ initializer: ts_morph_1.Writers.object({
136
+ enableDebugMessages: 'true',
137
+ skipUndefinedProperties: 'false',
138
+ skipNullProperties: 'false',
139
+ skipMissingProperties: 'false',
140
+ forbidUnknownValues: 'true',
141
+ }),
142
+ },
143
+ ],
144
+ });
145
+ sourceFile.addFunction({
146
+ name: 'CrudValidatorOptions',
147
+ isExported: true,
148
+ parameters: [
149
+ {
150
+ name: 'additionalOptions',
151
+ type: 'ValidatorOptions',
152
+ initializer: '{}',
153
+ },
154
+ ],
155
+ returnType: 'ValidatorOptions',
156
+ statements: ts_morph_1.Writers.returnStatement(`{ ...crudValidatorOptions, ...additionalOptions, }`),
157
+ });
158
+ }
159
+ return (0, schematics_1.chain)([
160
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, `lib/${dasherized}.crud.service.ts`, basePath),
161
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, `lib/${dasherized}/${dasherized}.crud.dto.ts`, basePath),
162
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, `lib/${dasherized}/create-${dasherized}.crud.dto.ts`, basePath),
163
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, `lib/${dasherized}/update-${dasherized}.crud.dto.ts`, basePath),
164
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, 'lib/collection.ts', basePath),
165
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, 'lib/transform-options.ts', basePath, TransformOptionsInitializer),
166
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, 'lib/validator-options.ts', basePath, ValidatorOptionsInitializer),
167
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, 'lib/collection.ts', basePath),
168
+ (0, coerce_source_file_rule_1.CoerceSourceFileRule)(project, 'lib/crud.module.ts', basePath),
169
+ AddToIndex([
170
+ `lib/${dasherized}.crud.service.ts`,
171
+ `lib/${dasherized}/${dasherized}.crud.dto.ts`,
172
+ `lib/${dasherized}/create-${dasherized}.crud.dto.ts`,
173
+ `lib/${dasherized}/update-${dasherized}.crud.dto.ts`,
174
+ 'lib/collection.ts',
175
+ 'lib/crud.module.ts',
176
+ 'lib/validator-options.ts',
177
+ 'lib/transform-options.ts',
178
+ ]),
179
+ () => {
180
+ (0, coerce_collection_enum_1.CoerceCollectionEnum)(project, generateOptions.collection);
181
+ generateOptions.parentCollectionList.forEach(collection => (0, coerce_collection_enum_1.CoerceCollectionEnum)(project, collection));
182
+ if (options.private) {
183
+ (0, coerce_collection_enum_1.CoerceCollectionEnum)(project, 'private');
184
+ }
185
+ (0, coerce_module_class_1.CoerceModuleClass)(project.getSourceFile(`lib/crud.module.ts`), 'Crud', true);
186
+ (0, crud_class_1.CrudClass)(project.getSourceFile(`lib/${dasherized}.crud.service.ts`), generateOptions);
187
+ (0, dto_class_1.DtoClass)(project.getSourceFile(`lib/${dasherized}/${dasherized}.crud.dto.ts`), generateOptions);
188
+ (0, create_dto_class_1.CreateDtoClass)(project.getSourceFile(`lib/${dasherized}/create-${dasherized}.crud.dto.ts`), generateOptions);
189
+ (0, update_dto_class_1.UpdateDtoClass)(project.getSourceFile(`lib/${dasherized}/update-${dasherized}.crud.dto.ts`), generateOptions);
190
+ (0, add_module_provider_1.AddModuleProvider)(project.getSourceFile(`lib/crud.module.ts`), `${classified}CrudService`, [
191
+ {
192
+ namedImports: [`${classified}CrudService`],
193
+ moduleSpecifier: `./${dasherized}.crud.service`,
194
+ },
195
+ ]);
196
+ (0, add_module_provider_1.AddModuleProvider)(project.getSourceFile(`lib/crud.module.ts`), `Logger`, [
197
+ {
198
+ namedImports: [`Logger`],
199
+ moduleSpecifier: `@nestjs/common`,
200
+ },
201
+ ]);
202
+ (0, add_module_export_1.AddModuleExport)(project.getSourceFile(`lib/crud.module.ts`), `${classified}CrudService`, [
203
+ {
204
+ namedImports: [`${classified}CrudService`],
205
+ moduleSpecifier: `./${dasherized}.crud.service`,
206
+ },
207
+ ]);
208
+ },
209
+ (0, schematics_ts_morph_1.ApplyTsMorphProjectRule)(project, basePath),
210
+ (0, schematics_ts_morph_1.FixMissingImports)(basePath),
211
+ ]);
212
+ });
213
+ }
214
+ exports.default = default_1;
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface Options {
2
+ camelized: string;
3
+ classified: string;
4
+ dasherized: string;
5
+ dtoName: string;
6
+ collection: string;
7
+ parentCollectionList: string[];
8
+ privateName?: string | null;
9
+ documentId: string;
10
+ overwrite: boolean;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/options.ts"],"names":[],"mappings":""}