@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,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const ts_morph_1 = require("ts-morph");
6
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
7
+ function CreateMethod(options, className) {
8
+ const { classified, dtoName, camelized, documentId, collection, parentCollectionList, privateName } = options;
9
+ let parameters = [
10
+ {
11
+ name: `create${dtoName}`,
12
+ type: `Create${dtoName}`,
13
+ },
14
+ {
15
+ name: `${documentId}`,
16
+ type: 'string',
17
+ hasQuestionToken: !options.privateName,
18
+ },
19
+ ];
20
+ if (privateName) {
21
+ parameters = parameters.reverse();
22
+ }
23
+ parameters.unshift(...parentCollectionList.map(subCollection => ({
24
+ name: `${(0, schematics_utilities_1.camelize)(subCollection)}Id`,
25
+ type: 'string',
26
+ })));
27
+ return {
28
+ name: 'create',
29
+ scope: ts_morph_1.Scope.Public,
30
+ isAsync: true,
31
+ parameters,
32
+ returnType: `Promise<${dtoName}>`,
33
+ statements: [
34
+ `this.logger.verbose('create: ' + ${documentId}, '${className}')`,
35
+ `if (!(create${dtoName} instanceof Create${dtoName})) { throw new InternalServerErrorException('Not instance of Create${dtoName}') }`,
36
+ `const ${camelized} = ${dtoName}.FromCreate${dtoName}(create${dtoName}, ${[
37
+ ...parentCollectionList.map(subCollection => `${(0, schematics_utilities_1.camelize)(subCollection)}Id`),
38
+ documentId,
39
+ ]});`,
40
+ `const result = validateSync(${camelized}, CrudValidatorOptions());`,
41
+ `if (result.length) { throw new ValidationException(result); }`,
42
+ writer => {
43
+ writer.writeLine(`const plain = classToPlain(${camelized}, CrudTransformOptions())`);
44
+ writer.writeLine('plain.__createdAt = new Date()');
45
+ writer.writeLine('plain.__updatedAt = new Date()');
46
+ writer.write('await this.firestore');
47
+ for (const subCollection of parentCollectionList) {
48
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
49
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
50
+ }
51
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()})`);
52
+ if (privateName) {
53
+ writer.writeLine(`.doc(${documentId})`);
54
+ writer.writeLine(`.collection(Collection.PRIVATE)`);
55
+ writer.writeLine(`.doc('${privateName}')`);
56
+ }
57
+ else {
58
+ writer.writeLine(`.doc(${camelized}.id)`);
59
+ }
60
+ writer.writeLine(`.set(plain)`);
61
+ writer.writeLine('.catch(FirestoreErrorHandler(this.logger));');
62
+ },
63
+ `this.logger.debug('created: ' + ${documentId}, '${className}')`,
64
+ `return ${camelized}`,
65
+ ],
66
+ };
67
+ }
68
+ exports.CreateMethod = CreateMethod;
69
+ //# sourceMappingURL=create-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/create-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,uCAIkB;AAElB,qEAAsD;AAEtD,SAAgB,YAAY,CAAC,OAAgB,EAAE,SAAiB;IAC9D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC9G,IAAI,UAAU,GAAG;QACf;YACE,IAAI,EAAE,SAAU,OAAQ,EAAE;YAC1B,IAAI,EAAE,SAAU,OAAQ,EAAE;SAC3B;QACD;YACE,IAAI,EAAE,GAAI,UAAW,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,gBAAgB,EAAE,CAAC,OAAO,CAAC,WAAW;SACvC;KACF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;KACnC;IACD,UAAU,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,aAAa,CAAE,IAAI;QACtC,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC,CAAC,CAAC;IACL,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU;QACV,UAAU,EAAE,WAAY,OAAQ,GAAG;QACnC,UAAU,EAAE;YACV,oCAAqC,UAAW,MAAO,SAAU,IAAI;YACrE,eAAgB,OAAQ,qBAAsB,OAAQ,sEAAuE,OAAQ,MAAM;YAC3I,SAAU,SAAU,MAAO,OAAQ,cAAe,OAAQ,UAAW,OAAQ,KAAM;gBACjF,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,GAAI,IAAA,+BAAQ,EAAC,aAAa,CAAE,IAAI,CAAC;gBAC9E,UAAU;aACV,IAAI;YACN,+BAAgC,SAAU,4BAA4B;YACtE,+DAA+D;YAC/D,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,SAAS,CAAC,8BAA+B,SAAU,2BAA2B,CAAC,CAAC;gBACvF,MAAM,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;gBACnD,MAAM,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;gBACtF,IAAI,WAAW,EAAE;oBACf,MAAM,CAAC,SAAS,CAAC,QAAS,UAAW,GAAG,CAAC,CAAC;oBAC1C,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;oBACpD,MAAM,CAAC,SAAS,CAAC,SAAU,WAAY,IAAI,CAAC,CAAC;iBAC9C;qBAAM;oBACL,MAAM,CAAC,SAAS,CAAC,QAAS,SAAU,MAAM,CAAC,CAAC;iBAC7C;gBACD,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;gBAChC,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;YAClE,CAAC;YACD,mCAAoC,UAAW,MAAO,SAAU,IAAI;YACpE,UAAW,SAAU,EAAE;SACxB;KACF,CAAC;AACJ,CAAC;AA3DD,oCA2DC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function DeleteMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function DeleteMethod(options, className) {
8
+ const { classified, dtoName, documentId, camelized, collection, parentCollectionList } = options;
9
+ return {
10
+ name: 'delete',
11
+ scope: ts_morph_1.Scope.Public,
12
+ isAsync: true,
13
+ parameters: [
14
+ ...parentCollectionList.map(subCollection => ({
15
+ name: `${(0, schematics_utilities_1.camelize)(subCollection)}Id`,
16
+ type: 'string',
17
+ })),
18
+ {
19
+ name: `${documentId}`,
20
+ type: 'string',
21
+ },
22
+ ],
23
+ returnType: 'Promise<void>',
24
+ statements: [
25
+ `this.logger.verbose('delete: ' + ${documentId}, '${className}')`,
26
+ writer => {
27
+ writer.write('await this.firestore');
28
+ for (const subCollection of parentCollectionList) {
29
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
30
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
31
+ }
32
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()})`);
33
+ writer.writeLine(`.doc(${documentId})`);
34
+ if (options.privateName) {
35
+ writer.writeLine(`.collection(Collection.PRIVATE)`);
36
+ writer.writeLine(`.doc('${options.privateName}')`);
37
+ }
38
+ writer.writeLine('.delete()');
39
+ writer.writeLine('.catch(FirestoreErrorHandler(this.logger));');
40
+ },
41
+ `this.logger.debug('deleted: ' + ${documentId}, '${className}')`,
42
+ ],
43
+ };
44
+ }
45
+ exports.DeleteMethod = DeleteMethod;
46
+ //# sourceMappingURL=delete-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/delete-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qEAAsD;AACtD,uCAIkB;AAGlB,SAAgB,YAAY,CAAC,OAAgB,EAAE,SAAiB;IAC9D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IACjG,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,aAAa,CAAE,IAAI;gBACtC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH;gBACE,IAAI,EAAE,GAAI,UAAW,EAAE;gBACvB,IAAI,EAAE,QAAQ;aACf;SACF;QACD,UAAU,EAAE,eAAe;QAC3B,UAAU,EAAE;YACV,oCAAqC,UAAW,MAAO,SAAU,IAAI;YACrE,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;gBACtF,MAAM,CAAC,SAAS,CAAC,QAAS,UAAW,GAAG,CAAC,CAAC;gBAC1C,IAAI,OAAO,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;oBACpD,MAAM,CAAC,SAAS,CAAC,SAAU,OAAO,CAAC,WAAY,IAAI,CAAC,CAAC;iBACtD;gBACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC9B,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;YAClE,CAAC;YACD,mCAAoC,UAAW,MAAO,SAAU,IAAI;SACrE;KACF,CAAC;AACJ,CAAC;AArCD,oCAqCC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function ExistsMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExistsMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function ExistsMethod(options, className) {
8
+ const { dtoName, documentId, collection, parentCollectionList } = options;
9
+ return {
10
+ name: 'exists',
11
+ scope: ts_morph_1.Scope.Public,
12
+ isAsync: true,
13
+ parameters: [
14
+ ...parentCollectionList.map(collection => ({
15
+ name: `${(0, schematics_utilities_1.camelize)(collection)}Id`,
16
+ type: 'string',
17
+ })),
18
+ {
19
+ name: documentId,
20
+ type: 'string',
21
+ },
22
+ ],
23
+ returnType: `Promise<${dtoName}>`,
24
+ statements: [
25
+ `this.logger.verbose('exists: ' + ${documentId}, '${className}')`,
26
+ writer => {
27
+ writer.write(`const snapshot = await this.firestore`);
28
+ for (const subCollection of parentCollectionList) {
29
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
30
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
31
+ }
32
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()})`);
33
+ writer.writeLine(`.doc(${documentId})`);
34
+ if (options.privateName) {
35
+ writer.writeLine(`.collection(Collection.PRIVATE)`);
36
+ writer.writeLine(`.doc('${options.privateName}')`);
37
+ }
38
+ writer.writeLine('.get()');
39
+ writer.writeLine('.catch(FirestoreErrorHandler(this.logger));');
40
+ writer.writeLine('return snapshot.exists');
41
+ },
42
+ ],
43
+ };
44
+ }
45
+ exports.ExistsMethod = ExistsMethod;
46
+ //# sourceMappingURL=exists-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exists-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/exists-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qEAAsD;AACtD,uCAIkB;AAGlB,SAAgB,YAAY,CAAC,OAAgB,EAAE,SAAiB;IAC9D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IAC1E,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI;gBACnC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACf;SACF;QACD,UAAU,EAAE,WAAY,OAAQ,GAAG;QACnC,UAAU,EAAE;YACV,oCAAqC,UAAW,MAAO,SAAU,IAAI;YACrE,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACtD,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;gBACtF,MAAM,CAAC,SAAS,CAAC,QAAS,UAAW,GAAG,CAAC,CAAC;gBAC1C,IAAI,OAAO,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;oBACpD,MAAM,CAAC,SAAS,CAAC,SAAU,OAAO,CAAC,WAAY,IAAI,CAAC,CAAC;iBACtD;gBACD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;gBAChE,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YAC7C,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AArCD,oCAqCC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function FindInGroupMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindInGroupMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const ts_morph_1 = require("ts-morph");
6
+ function FindInGroupMethod(options, className) {
7
+ const { dtoName, camelized, collection, parentCollectionList } = options;
8
+ return {
9
+ name: 'findInGroup',
10
+ scope: ts_morph_1.Scope.Public,
11
+ isAsync: true,
12
+ parameters: [
13
+ {
14
+ name: 'query',
15
+ type: '(queryRef: Query) => Query',
16
+ initializer: 'query => query',
17
+ },
18
+ ],
19
+ returnType: `Promise<${dtoName}[]>`,
20
+ statements: [
21
+ `this.logger.verbose('findInGroup', '${className}')`,
22
+ writer => {
23
+ writer.write(`const ref = this.firestore`);
24
+ writer.writeLine(`.collectionGroup(Collection.${(0, strings_1.underscore)(collection).toUpperCase()});`);
25
+ writer.write(`const querySnapshot = await query(ref)`);
26
+ writer.writeLine('.get()');
27
+ writer.writeLine('.catch(FirestoreErrorHandler<QuerySnapshot>(this.logger));');
28
+ writer.writeLine(`const ${camelized}List = plainToClass(${dtoName}, querySnapshot.docs.map(doc => doc.data()), CrudTransformOptions());`);
29
+ writer.writeLine(`const result = ${camelized}List.map(${camelized} => validateSync(${camelized}, CrudValidatorOptions())).filter(r => r.length);`);
30
+ writer.writeLine(`if (result.length) { throw new ValidationException(result.flat()); }`);
31
+ writer.write(`return ${camelized}List;`);
32
+ },
33
+ ],
34
+ };
35
+ }
36
+ exports.FindInGroupMethod = FindInGroupMethod;
37
+ //# sourceMappingURL=find-in-group-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-in-group-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/find-in-group-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,uCAIkB;AAGlB,SAAgB,iBAAiB,CAAC,OAAgB,EAAE,SAAiB;IACnE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,4BAA4B;gBAClC,WAAW,EAAE,gBAAgB;aAC9B;SACF;QACD,UAAU,EAAE,WAAY,OAAQ,KAAK;QACrC,UAAU,EAAE;YACV,uCAAwC,SAAU,IAAI;YACtD,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,MAAM,CAAC,SAAS,CAAC,+BAAgC,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,IAAI,CAAC,CAAC;gBAC5F,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,CAAC,SAAS,CAAC,4DAA4D,CAAC,CAAC;gBAC/E,MAAM,CAAC,SAAS,CAAC,SAAU,SAAU,uBAAwB,OAAQ,uEAAuE,CAAC,CAAC;gBAC9I,MAAM,CAAC,SAAS,CAAC,kBAAmB,SAAU,YAAa,SAAU,oBAAqB,SAAU,mDAAmD,CAAC,CAAC;gBACzJ,MAAM,CAAC,SAAS,CAAC,sEAAsE,CAAC,CAAC;gBACzF,MAAM,CAAC,KAAK,CAAC,UAAW,SAAU,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AA7BD,8CA6BC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function FindMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function FindMethod(options, className) {
8
+ const { dtoName, camelized, collection, parentCollectionList } = options;
9
+ return {
10
+ name: 'find',
11
+ scope: ts_morph_1.Scope.Public,
12
+ isAsync: true,
13
+ parameters: [
14
+ ...parentCollectionList.map(collection => ({
15
+ name: `${(0, schematics_utilities_1.camelize)(collection)}Id`,
16
+ type: 'string',
17
+ })),
18
+ {
19
+ name: 'query',
20
+ type: '(queryRef: Query) => Query',
21
+ initializer: 'query => query',
22
+ },
23
+ ],
24
+ returnType: `Promise<${dtoName}[]>`,
25
+ statements: [
26
+ `this.logger.verbose('find', '${className}')`,
27
+ writer => {
28
+ writer.write(`const ref = this.firestore`);
29
+ for (const subCollection of parentCollectionList) {
30
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
31
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
32
+ }
33
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()});`);
34
+ writer.write(`const querySnapshot = await query(ref)`);
35
+ writer.writeLine('.get()');
36
+ writer.writeLine('.catch(FirestoreErrorHandler<QuerySnapshot>(this.logger));');
37
+ writer.writeLine(`const ${camelized}List = plainToClass(${dtoName}, querySnapshot.docs.map(doc => doc.data()), CrudTransformOptions());`);
38
+ writer.writeLine(`const result = ${camelized}List.map(${camelized} => validateSync(${camelized}, CrudValidatorOptions())).filter(r => r.length);`);
39
+ writer.writeLine(`if (result.length) { throw new ValidationException(result.flat()); }`);
40
+ writer.write(`return ${camelized}List;`);
41
+ },
42
+ ],
43
+ };
44
+ }
45
+ exports.FindMethod = FindMethod;
46
+ //# sourceMappingURL=find-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/find-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qEAAsD;AACtD,uCAIkB;AAGlB,SAAgB,UAAU,CAAC,OAAgB,EAAE,SAAiB;IAC5D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI;gBACnC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,4BAA4B;gBAClC,WAAW,EAAE,gBAAgB;aAC9B;SACF;QACD,UAAU,EAAE,WAAY,OAAQ,KAAK;QACrC,UAAU,EAAE;YACV,gCAAiC,SAAU,IAAI;YAC/C,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,IAAI,CAAC,CAAC;gBACvF,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,CAAC,SAAS,CAAC,4DAA4D,CAAC,CAAC;gBAC/E,MAAM,CAAC,SAAS,CAAC,SAAU,SAAU,uBAAwB,OAAQ,uEAAuE,CAAC,CAAC;gBAC9I,MAAM,CAAC,SAAS,CAAC,kBAAmB,SAAU,YAAa,SAAU,oBAAqB,SAAU,mDAAmD,CAAC,CAAC;gBACzJ,MAAM,CAAC,SAAS,CAAC,sEAAsE,CAAC,CAAC;gBACzF,MAAM,CAAC,KAAK,CAAC,UAAW,SAAU,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AArCD,gCAqCC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function GetMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function GetMethod(options, className) {
8
+ const { classified, dtoName, documentId, camelized, collection, parentCollectionList } = options;
9
+ return {
10
+ name: 'get',
11
+ scope: ts_morph_1.Scope.Public,
12
+ isAsync: true,
13
+ parameters: [
14
+ ...parentCollectionList.map(collection => ({
15
+ name: `${(0, schematics_utilities_1.camelize)(collection)}Id`,
16
+ type: 'string',
17
+ })),
18
+ {
19
+ name: documentId,
20
+ type: 'string',
21
+ },
22
+ ],
23
+ returnType: `Promise<${dtoName}>`,
24
+ statements: [
25
+ `this.logger.verbose('get: ' + ${documentId}, '${className}')`,
26
+ writer => {
27
+ writer.write(`const snapshot = await this.firestore`);
28
+ for (const subCollection of parentCollectionList) {
29
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
30
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
31
+ }
32
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()})`);
33
+ writer.writeLine(`.doc(${documentId})`);
34
+ if (options.privateName) {
35
+ writer.writeLine(`.collection(Collection.PRIVATE)`);
36
+ writer.writeLine(`.doc('${options.privateName}')`);
37
+ }
38
+ writer.writeLine('.get()');
39
+ writer.writeLine('.catch(FirestoreErrorHandler(this.logger));');
40
+ writer.writeLine('if (!snapshot.exists) {');
41
+ writer.writeLine(`throw new NotFoundException('A ${collection} document with the provided id does not exists.');`);
42
+ writer.writeLine('}');
43
+ writer.writeLine(`const ${camelized} = plainToClass(${dtoName}, snapshot.data(), CrudTransformOptions())`);
44
+ writer.writeLine(`const result = validateSync(${camelized}, CrudValidatorOptions());`);
45
+ writer.writeLine(`if (result.length) { throw new ValidationException(result); }`);
46
+ writer.write(`return ${camelized};`);
47
+ },
48
+ ],
49
+ };
50
+ }
51
+ exports.GetMethod = GetMethod;
52
+ //# sourceMappingURL=get-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/get-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qEAAsD;AACtD,uCAIkB;AAGlB,SAAgB,SAAS,CAAC,OAAgB,EAAE,SAAiB;IAC3D,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC;IACjG,OAAO;QACL,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI;gBACnC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACf;SACF;QACD,UAAU,EAAE,WAAY,OAAQ,GAAG;QACnC,UAAU,EAAE;YACV,iCAAkC,UAAW,MAAO,SAAU,IAAI;YAClE,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACtD,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;gBACtF,MAAM,CAAC,SAAS,CAAC,QAAS,UAAW,GAAG,CAAC,CAAC;gBAC1C,IAAI,OAAO,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;oBACpD,MAAM,CAAC,SAAS,CAAC,SAAU,OAAO,CAAC,WAAY,IAAI,CAAC,CAAC;iBACtD;gBACD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;gBAChE,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;gBAC5C,MAAM,CAAC,SAAS,CAAC,kCAAmC,UAAW,oDAAoD,CAAC,CAAC;gBACrH,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,CAAC,SAAS,CAAC,SAAU,SAAU,mBAAoB,OAAQ,4CAA4C,CAAC,CAAC;gBAC/G,MAAM,CAAC,SAAS,CAAC,+BAAgC,SAAU,4BAA4B,CAAC,CAAC;gBACzF,MAAM,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAC;gBAClF,MAAM,CAAC,KAAK,CAAC,UAAW,SAAU,GAAG,CAAC,CAAC;YACzC,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AA3CD,8BA2CC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function UpdateFieldMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateFieldMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function UpdateFieldMethod(options, className) {
8
+ const { classified, documentId, dtoName, camelized, collection, parentCollectionList, privateName } = options;
9
+ return {
10
+ name: 'updateField',
11
+ scope: ts_morph_1.Scope.Public,
12
+ isAsync: true,
13
+ parameters: [
14
+ ...parentCollectionList.map(collection => ({
15
+ name: `${(0, schematics_utilities_1.camelize)(collection)}Id`,
16
+ type: 'string',
17
+ })),
18
+ {
19
+ name: documentId,
20
+ type: 'string',
21
+ },
22
+ /*
23
+ field: string | FieldPath,
24
+ value: any,
25
+ ...moreFieldsOrPrecondition: any[]
26
+ */
27
+ {
28
+ name: 'field',
29
+ type: 'string | FieldPath',
30
+ },
31
+ {
32
+ name: 'value',
33
+ type: 'any',
34
+ },
35
+ {
36
+ name: 'moreFieldsOrPrecondition',
37
+ type: 'any[]',
38
+ isRestParameter: true,
39
+ },
40
+ ],
41
+ returnType: `Promise<${dtoName}>`,
42
+ statements: [
43
+ `this.logger.verbose('update: ' + ${documentId}, '${className}')`,
44
+ writer => {
45
+ writer.write('await this.firestore');
46
+ for (const subCollection of parentCollectionList) {
47
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
48
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
49
+ }
50
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()})`);
51
+ writer.writeLine(`.doc(${documentId})`);
52
+ if (privateName) {
53
+ writer.writeLine(`.collection(Collection.PRIVATE)`);
54
+ writer.writeLine(`.doc('${options.privateName}')`);
55
+ }
56
+ writer.writeLine(`.update(field, value, ...moreFieldsOrPrecondition)`);
57
+ writer.writeLine('.catch(FirestoreErrorHandler(this.logger));');
58
+ },
59
+ `this.logger.debug('updated: ' + ${documentId}, '${className}')`,
60
+ `return this.get(${[
61
+ ...parentCollectionList.map(collection => `${(0, schematics_utilities_1.camelize)(collection)}Id`),
62
+ `${documentId}`,
63
+ ].join(', ')})`,
64
+ ],
65
+ };
66
+ }
67
+ exports.UpdateFieldMethod = UpdateFieldMethod;
68
+ //# sourceMappingURL=update-field-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-field-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/update-field-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qEAAsD;AACtD,uCAIkB;AAGlB,SAAgB,iBAAiB,CAAC,OAAgB,EAAE,SAAiB;IACnE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC9G,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI;gBACnC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACf;YACD;;;;eAIG;YACH;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,oBAAoB;aAC3B;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,KAAK;aACZ;YACD;gBACE,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,OAAO;gBACb,eAAe,EAAE,IAAI;aACtB;SACF;QACD,UAAU,EAAE,WAAY,OAAQ,GAAG;QACnC,UAAU,EAAE;YACV,oCAAqC,UAAW,MAAO,SAAU,IAAI;YACrE,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;gBACtF,MAAM,CAAC,SAAS,CAAC,QAAS,UAAW,GAAG,CAAC,CAAC;gBAC1C,IAAI,WAAW,EAAE;oBACf,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;oBACpD,MAAM,CAAC,SAAS,CAAC,SAAU,OAAO,CAAC,WAAY,IAAI,CAAC,CAAC;iBACtD;gBACD,MAAM,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC;gBACvE,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;YAClE,CAAC;YACD,mCAAoC,UAAW,MAAO,SAAU,IAAI;YACpE,mBAAoB;gBAClB,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI,CAAC;gBACxE,GAAI,UAAW,EAAE;aAClB,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG;SACjB;KACF,CAAC;AACJ,CAAC;AA3DD,8CA2DC"}
@@ -0,0 +1,3 @@
1
+ import { MethodDeclarationStructure, OptionalKind } from 'ts-morph';
2
+ import { Options } from '../options';
3
+ export declare function UpdateMethod(options: Options, className: string): OptionalKind<MethodDeclarationStructure>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateMethod = void 0;
4
+ const strings_1 = require("@angular-devkit/core/src/utils/strings");
5
+ const schematics_utilities_1 = require("@rxap/schematics-utilities");
6
+ const ts_morph_1 = require("ts-morph");
7
+ function UpdateMethod(options, className) {
8
+ const { classified, documentId, dtoName, camelized, collection, parentCollectionList, privateName } = options;
9
+ return {
10
+ name: 'update',
11
+ scope: ts_morph_1.Scope.Public,
12
+ isAsync: true,
13
+ parameters: [
14
+ ...parentCollectionList.map(collection => ({
15
+ name: `${(0, schematics_utilities_1.camelize)(collection)}Id`,
16
+ type: 'string',
17
+ })),
18
+ {
19
+ name: documentId,
20
+ type: 'string',
21
+ },
22
+ {
23
+ name: `update${dtoName}`,
24
+ type: `Update${dtoName}`,
25
+ },
26
+ ],
27
+ returnType: `Promise<${dtoName}>`,
28
+ statements: [
29
+ `this.logger.verbose('update: ' + ${documentId}, '${className}')`,
30
+ `if (!(update${dtoName} instanceof Update${dtoName})) { throw new InternalServerErrorException('Not instance of Update${dtoName}') }`,
31
+ `const result = validateSync(update${dtoName}, CrudValidatorOptions());`,
32
+ `if (result.length) { throw new ValidationException(result); }`,
33
+ writer => {
34
+ writer.writeLine(`const plain = classToPlain(update${dtoName}, CrudTransformOptions())`);
35
+ writer.writeLine('plain.__updatedAt = new Date()');
36
+ writer.write('await this.firestore');
37
+ for (const subCollection of parentCollectionList) {
38
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(subCollection).toUpperCase()})`);
39
+ writer.writeLine(`.doc(${(0, schematics_utilities_1.camelize)(subCollection)}Id)`);
40
+ }
41
+ writer.writeLine(`.collection(Collection.${(0, strings_1.underscore)(collection).toUpperCase()})`);
42
+ writer.writeLine(`.doc(${documentId})`);
43
+ if (privateName) {
44
+ writer.writeLine(`.collection(Collection.PRIVATE)`);
45
+ writer.writeLine(`.doc('${options.privateName}')`);
46
+ }
47
+ writer.writeLine(`.update(plain)`);
48
+ writer.writeLine('.catch(FirestoreErrorHandler(this.logger));');
49
+ },
50
+ `this.logger.debug('updated: ' + ${documentId}, '${className}')`,
51
+ `return this.get(${[
52
+ ...parentCollectionList.map(collection => `${(0, schematics_utilities_1.camelize)(collection)}Id`),
53
+ `${documentId}`,
54
+ ].join(', ')})`,
55
+ ],
56
+ };
57
+ }
58
+ exports.UpdateMethod = UpdateMethod;
59
+ //# sourceMappingURL=update-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-method.js","sourceRoot":"","sources":["../../../../../../../../packages/schematic/nestjs/src/schematics/crud-service/crud-class/update-method.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qEAAsD;AACtD,uCAIkB;AAGlB,SAAgB,YAAY,CAAC,OAAgB,EAAE,SAAiB;IAC9D,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC9G,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAK,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACzC,IAAI,EAAE,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI;gBACnC,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YACH;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,IAAI,EAAE,SAAU,OAAQ,EAAE;gBAC1B,IAAI,EAAE,SAAU,OAAQ,EAAE;aAC3B;SACF;QACD,UAAU,EAAE,WAAY,OAAQ,GAAG;QACnC,UAAU,EAAE;YACV,oCAAqC,UAAW,MAAO,SAAU,IAAI;YACrE,eAAgB,OAAQ,qBAAsB,OAAQ,sEAAuE,OAAQ,MAAM;YAC3I,qCAAsC,OAAQ,4BAA4B;YAC1E,+DAA+D;YAC/D,MAAM,CAAC,EAAE;gBACP,MAAM,CAAC,SAAS,CAAC,oCAAqC,OAAQ,2BAA2B,CAAC,CAAC;gBAC3F,MAAM,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE;oBAChD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;oBACzF,MAAM,CAAC,SAAS,CAAC,QAAS,IAAA,+BAAQ,EAAC,aAAa,CAAE,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM,CAAC,SAAS,CAAC,0BAA2B,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,WAAW,EAAG,GAAG,CAAC,CAAC;gBACtF,MAAM,CAAC,SAAS,CAAC,QAAS,UAAW,GAAG,CAAC,CAAC;gBAC1C,IAAI,WAAW,EAAE;oBACf,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;oBACpD,MAAM,CAAC,SAAS,CAAC,SAAU,OAAO,CAAC,WAAY,IAAI,CAAC,CAAC;iBACtD;gBACD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACnC,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;YAClE,CAAC;YACD,mCAAoC,UAAW,MAAO,SAAU,IAAI;YACpE,mBAAoB;gBAClB,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAI,IAAA,+BAAQ,EAAC,UAAU,CAAE,IAAI,CAAC;gBACxE,GAAI,UAAW,EAAE;aAClB,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG;SACjB;KACF,CAAC;AACJ,CAAC;AAlDD,oCAkDC"}
@@ -0,0 +1,3 @@
1
+ import { SourceFile } from 'ts-morph';
2
+ import { Options } from './options';
3
+ export declare function CrudClass(sourceFile: SourceFile, options: Options): void;