@rafikidota/iroh 0.49.1 → 0.51.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 (108) hide show
  1. package/collection.json +7 -7
  2. package/dist/common/class/exception-handler.d.ts +3 -0
  3. package/dist/common/class/exception-handler.js +7 -0
  4. package/dist/common/class/exception-handler.js.map +1 -0
  5. package/dist/common/class/index.d.ts +2 -0
  6. package/dist/{schematics/utils → common/class}/index.js +2 -8
  7. package/dist/common/class/index.js.map +1 -0
  8. package/dist/common/class/view-mapper..d.ts +3 -0
  9. package/dist/common/class/view-mapper..js +7 -0
  10. package/dist/common/class/view-mapper..js.map +1 -0
  11. package/dist/common/decorators/dto/nested.decorator.d.ts +4 -0
  12. package/dist/common/decorators/dto/nested.decorator.js +17 -0
  13. package/dist/common/decorators/dto/nested.decorator.js.map +1 -0
  14. package/dist/common/decorators/dto/validator.namespace.d.ts +2 -0
  15. package/dist/common/decorators/dto/validator.namespace.js +9 -0
  16. package/dist/common/decorators/dto/validator.namespace.js.map +1 -1
  17. package/dist/common/decorators/response/error-handler.decorator.d.ts +4 -0
  18. package/dist/common/decorators/response/error-handler.decorator.js +8 -0
  19. package/dist/common/decorators/response/error-handler.decorator.js.map +1 -0
  20. package/dist/common/decorators/response/handle-response.decorator.d.ts +1 -2
  21. package/dist/common/decorators/response/handle-response.decorator.js +13 -5
  22. package/dist/common/decorators/response/handle-response.decorator.js.map +1 -1
  23. package/dist/common/decorators/response/index.d.ts +2 -0
  24. package/dist/common/decorators/response/index.js +2 -0
  25. package/dist/common/decorators/response/index.js.map +1 -1
  26. package/dist/common/decorators/response/mapper.decorator.d.ts +6 -0
  27. package/dist/common/decorators/response/mapper.decorator.js +8 -0
  28. package/dist/common/decorators/response/mapper.decorator.js.map +1 -0
  29. package/dist/common/index.d.ts +1 -0
  30. package/dist/common/index.js +1 -0
  31. package/dist/common/index.js.map +1 -1
  32. package/package.json +2 -8
  33. package/dist/schematics/crud/crud.factory.d.ts +0 -3
  34. package/dist/schematics/crud/crud.factory.js +0 -68
  35. package/dist/schematics/crud/crud.factory.js.map +0 -1
  36. package/dist/schematics/crud/files/ts/__name__.controller.ts +0 -61
  37. package/dist/schematics/crud/files/ts/__name__.module.ts +0 -14
  38. package/dist/schematics/crud/files/ts/__name__.service.ts +0 -11
  39. package/dist/schematics/crud/files/ts/aggregations/index.ts +0 -0
  40. package/dist/schematics/crud/files/ts/app/dto/__name__.create.dto.ts +0 -11
  41. package/dist/schematics/crud/files/ts/app/dto/__name__.update.dto.ts +0 -4
  42. package/dist/schematics/crud/files/ts/app/dto/__name__.view.ts +0 -30
  43. package/dist/schematics/crud/files/ts/app/use-cases/index.ts +0 -0
  44. package/dist/schematics/crud/files/ts/domain/__name__.domain.ts +0 -28
  45. package/dist/schematics/crud/files/ts/domain/__name__.interface.ts +0 -8
  46. package/dist/schematics/crud/files/ts/infra/__name__.mapper.ts +0 -35
  47. package/dist/schematics/crud/files/ts/infra/__name__.persistence.ts +0 -6
  48. package/dist/schematics/crud/files/ts/infra/__name__.repository.ts +0 -18
  49. package/dist/schematics/crud/files/ts/test/__name__.controller.spec.ts +0 -27
  50. package/dist/schematics/crud/files/ts/test/__name__.service.spec.ts +0 -25
  51. package/dist/schematics/crud/files/ts/test/provider/__name__.typeorm.repository.ts +0 -5
  52. package/dist/schematics/crud/schema.json +0 -43
  53. package/dist/schematics/defaults.d.ts +0 -6
  54. package/dist/schematics/defaults.js +0 -10
  55. package/dist/schematics/defaults.js.map +0 -1
  56. package/dist/schematics/init/files/ts/common/common.module.ts +0 -37
  57. package/dist/schematics/init/files/ts/common/config/api/api.config.module.ts +0 -8
  58. package/dist/schematics/init/files/ts/common/config/api/env/api.env.config.ts +0 -8
  59. package/dist/schematics/init/files/ts/common/config/api/env/api.env.validation.ts +0 -6
  60. package/dist/schematics/init/files/ts/common/config/configuration.module.ts +0 -18
  61. package/dist/schematics/init/files/ts/common/config/database/env/typeorm.env.config.ts +0 -12
  62. package/dist/schematics/init/files/ts/common/config/database/env/typeorm.env.validation.ts +0 -11
  63. package/dist/schematics/init/files/ts/common/config/database/migrations/index.ts +0 -0
  64. package/dist/schematics/init/files/ts/common/config/database/typeorm.config.module.ts +0 -15
  65. package/dist/schematics/init/files/ts/common/config/database/typeorm.data-source.ts +0 -25
  66. package/dist/schematics/init/files/ts/common/config/swagger/env/swagger.env.config.ts +0 -7
  67. package/dist/schematics/init/files/ts/common/config/swagger/env/swagger.env.validation.ts +0 -6
  68. package/dist/schematics/init/files/ts/common/config/swagger/swagger.config.module.ts +0 -8
  69. package/dist/schematics/init/files/ts/common/config/swagger/swagger.config.ts +0 -24
  70. package/dist/schematics/init/files/ts/modules/core.module.ts +0 -4
  71. package/dist/schematics/init/init.factory.d.ts +0 -3
  72. package/dist/schematics/init/init.factory.js +0 -69
  73. package/dist/schematics/init/init.factory.js.map +0 -1
  74. package/dist/schematics/init/schema.json +0 -37
  75. package/dist/schematics/use-case/files/ts/__name__.use-case.ts +0 -20
  76. package/dist/schematics/use-case/schema.json +0 -43
  77. package/dist/schematics/use-case/use-case.factory.d.ts +0 -3
  78. package/dist/schematics/use-case/use-case.factory.js +0 -68
  79. package/dist/schematics/use-case/use-case.factory.js.map +0 -1
  80. package/dist/schematics/utils/index.d.ts +0 -8
  81. package/dist/schematics/utils/index.js.map +0 -1
  82. package/dist/schematics/utils/metadata.manager.d.ts +0 -13
  83. package/dist/schematics/utils/metadata.manager.js +0 -166
  84. package/dist/schematics/utils/metadata.manager.js.map +0 -1
  85. package/dist/schematics/utils/module-import.declarator.d.ts +0 -10
  86. package/dist/schematics/utils/module-import.declarator.js +0 -40
  87. package/dist/schematics/utils/module-import.declarator.js.map +0 -1
  88. package/dist/schematics/utils/module-metadata.declarator.d.ts +0 -4
  89. package/dist/schematics/utils/module-metadata.declarator.js +0 -13
  90. package/dist/schematics/utils/module-metadata.declarator.js.map +0 -1
  91. package/dist/schematics/utils/module.declarator.d.ts +0 -22
  92. package/dist/schematics/utils/module.declarator.js +0 -30
  93. package/dist/schematics/utils/module.declarator.js.map +0 -1
  94. package/dist/schematics/utils/module.finder.d.ts +0 -13
  95. package/dist/schematics/utils/module.finder.js +0 -25
  96. package/dist/schematics/utils/module.finder.js.map +0 -1
  97. package/dist/schematics/utils/name.parser.d.ts +0 -12
  98. package/dist/schematics/utils/name.parser.js +0 -18
  99. package/dist/schematics/utils/name.parser.js.map +0 -1
  100. package/dist/schematics/utils/path.solver.d.ts +0 -4
  101. package/dist/schematics/utils/path.solver.js +0 -13
  102. package/dist/schematics/utils/path.solver.js.map +0 -1
  103. package/dist/schematics/utils/source-root.helpers.d.ts +0 -6
  104. package/dist/schematics/utils/source-root.helpers.js +0 -25
  105. package/dist/schematics/utils/source-root.helpers.js.map +0 -1
  106. package/dist/schematics/utils/string-utils.d.ts +0 -3
  107. package/dist/schematics/utils/string-utils.js +0 -15
  108. package/dist/schematics/utils/string-utils.js.map +0 -1
package/collection.json CHANGED
@@ -3,18 +3,18 @@
3
3
  "schematics": {
4
4
  "crud": {
5
5
  "description": "Schematic to generate a dynamic crud module.",
6
- "factory": "./dist/schematics/crud/crud.factory#main",
7
- "schema": "./dist/schematics/crud/schema.json"
6
+ "factory": "./node_modules/@rafikidota/iroh-schematics/dist/crud/crud.factory#main",
7
+ "schema": "./node_modules/@rafikidota/iroh-schematics/dist/crud/schema.json"
8
8
  },
9
9
  "init": {
10
10
  "description": "Schematic to generate dynamic basic modules.",
11
- "factory": "./dist/schematics/init/init.factory#main",
12
- "schema": "./dist/schematics/init/schema.json"
11
+ "factory": "./node_modules/@rafikidota/iroh-schematics/dist/init/init.factory#main",
12
+ "schema": "./node_modules/@rafikidota/iroh-schematics/dist/init/schema.json"
13
13
  },
14
14
  "use-case": {
15
15
  "description": "Schematic to generate use cases.",
16
- "factory": "./dist/schematics/use-case/use-case.factory#main",
17
- "schema": "./dist/schematics/use-case/schema.json"
16
+ "factory": "./node_modules/@rafikidota/iroh-schematics/dist/use-case/use-case.factory#main",
17
+ "schema": "./node_modules/@rafikidota/iroh-schematics/dist/use-case/schema.json"
18
18
  }
19
19
  }
20
- }
20
+ }
@@ -0,0 +1,3 @@
1
+ export declare abstract class ExceptionHandler {
2
+ abstract handle(error: unknown): void;
3
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExceptionHandler = void 0;
4
+ class ExceptionHandler {
5
+ }
6
+ exports.ExceptionHandler = ExceptionHandler;
7
+ //# sourceMappingURL=exception-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-handler.js","sourceRoot":"","sources":["../../../src/common/class/exception-handler.ts"],"names":[],"mappings":";;;AAAA,MAAsB,gBAAgB;CAErC;AAFD,4CAEC"}
@@ -0,0 +1,2 @@
1
+ export * from './exception-handler';
2
+ export * from './view-mapper.';
@@ -14,12 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./metadata.manager"), exports);
18
- __exportStar(require("./module-import.declarator"), exports);
19
- __exportStar(require("./module-metadata.declarator"), exports);
20
- __exportStar(require("./module.declarator"), exports);
21
- __exportStar(require("./module.finder"), exports);
22
- __exportStar(require("./name.parser"), exports);
23
- __exportStar(require("./path.solver"), exports);
24
- __exportStar(require("./source-root.helpers"), exports);
17
+ __exportStar(require("./exception-handler"), exports);
18
+ __exportStar(require("./view-mapper."), exports);
25
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/class/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,iDAA+B"}
@@ -0,0 +1,3 @@
1
+ export declare abstract class ViewMapper<D = any, V = any> {
2
+ abstract map(data: D): V;
3
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewMapper = void 0;
4
+ class ViewMapper {
5
+ }
6
+ exports.ViewMapper = ViewMapper;
7
+ //# sourceMappingURL=view-mapper..js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-mapper..js","sourceRoot":"","sources":["../../../src/common/class/view-mapper..ts"],"names":[],"mappings":";;;AAAA,MAAsB,UAAU;CAE/B;AAFD,gCAEC"}
@@ -0,0 +1,4 @@
1
+ import { Type as NestType } from '@nestjs/common';
2
+ import { ValidationOptions } from 'class-validator';
3
+ export declare function NestedRequired<T extends object>(dto: NestType<T>, options?: ValidationOptions): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
4
+ export declare function NestedOptional<T extends object>(dto: NestType<T>, options?: ValidationOptions): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestedRequired = NestedRequired;
4
+ exports.NestedOptional = NestedOptional;
5
+ const common_1 = require("@nestjs/common");
6
+ const class_validator_1 = require("class-validator");
7
+ const class_validator_2 = require("class-validator");
8
+ const class_transformer_1 = require("class-transformer");
9
+ function NestedRequired(dto, options) {
10
+ const decorators = [(0, class_transformer_1.Type)(() => dto), (0, class_validator_1.ValidateNested)(options)];
11
+ return (0, common_1.applyDecorators)(...decorators);
12
+ }
13
+ function NestedOptional(dto, options) {
14
+ const decorators = [(0, class_transformer_1.Type)(() => dto), (0, class_validator_1.ValidateNested)(options), (0, class_validator_2.IsOptional)()];
15
+ return (0, common_1.applyDecorators)(...decorators);
16
+ }
17
+ //# sourceMappingURL=nested.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/dto/nested.decorator.ts"],"names":[],"mappings":";;AAOA,wCAMC;AAED,wCAMC;AArBD,2CAAmE;AAEnE,qDAAiD;AACjD,qDAA6C;AAE7C,yDAAyC;AAEzC,SAAgB,cAAc,CAC5B,GAAgB,EAChB,OAA2B;IAE3B,MAAM,UAAU,GAAG,CAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAA,gCAAc,EAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,cAAc,CAC5B,GAAgB,EAChB,OAA2B;IAE3B,MAAM,UAAU,GAAG,CAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAA,gCAAc,EAAC,OAAO,CAAC,EAAE,IAAA,4BAAU,GAAE,CAAC,CAAC;IAC5E,OAAO,IAAA,wBAAe,EAAC,GAAG,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -6,6 +6,7 @@ export declare namespace Validator {
6
6
  function Email(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
7
7
  function PhoneNumber(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
8
8
  function EntityId(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
9
+ function Nested<T extends object>(dto: new () => T): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
9
10
  namespace Optional {
10
11
  function String(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
11
12
  function Number(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -14,5 +15,6 @@ export declare namespace Validator {
14
15
  function Email(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
15
16
  function PhoneNumber(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
16
17
  function EntityId(): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
18
+ function Nested<T extends object>(dto: new () => T): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
17
19
  }
18
20
  }
@@ -8,6 +8,7 @@ const enum_decorator_1 = require("./enum.decorator");
8
8
  const email_decorator_1 = require("./email.decorator");
9
9
  const phone_decorator_1 = require("./phone.decorator");
10
10
  const entity_id_decorator_1 = require("./entity-id.decorator");
11
+ const nested_decorator_1 = require("./nested.decorator");
11
12
  var Validator;
12
13
  (function (Validator) {
13
14
  function String() {
@@ -38,6 +39,10 @@ var Validator;
38
39
  return (0, entity_id_decorator_1.EntityIdRequired)();
39
40
  }
40
41
  Validator.EntityId = EntityId;
42
+ function Nested(dto) {
43
+ return (0, nested_decorator_1.NestedRequired)(dto);
44
+ }
45
+ Validator.Nested = Nested;
41
46
  let Optional;
42
47
  (function (Optional) {
43
48
  function String() {
@@ -68,6 +73,10 @@ var Validator;
68
73
  return (0, entity_id_decorator_1.EntityIdOptional)();
69
74
  }
70
75
  Optional.EntityId = EntityId;
76
+ function Nested(dto) {
77
+ return (0, nested_decorator_1.NestedOptional)(dto);
78
+ }
79
+ Optional.Nested = Nested;
71
80
  })(Optional = Validator.Optional || (Validator.Optional = {}));
72
81
  })(Validator || (exports.Validator = Validator = {}));
73
82
  //# sourceMappingURL=validator.namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.namespace.js","sourceRoot":"","sources":["../../../../src/common/decorators/dto/validator.namespace.ts"],"names":[],"mappings":";;;AAAA,yDAAoE;AACpE,yDAAoE;AACpE,2DAAuE;AACvE,qDAA8D;AAC9D,uDAAiE;AACjE,uDAAuE;AACvE,+DAA2E;AAE3E,IAAiB,SAAS,CAoDzB;AApDD,WAAiB,SAAS;IACxB,SAAgB,MAAM;QACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;IAC1B,CAAC;IAFe,gBAAM,SAErB,CAAA;IAED,SAAgB,MAAM;QACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;IAC1B,CAAC;IAFe,gBAAM,SAErB,CAAA;IAED,SAAgB,OAAO;QACrB,OAAO,IAAA,mCAAe,GAAE,CAAC;IAC3B,CAAC;IAFe,iBAAO,UAEtB,CAAA;IAED,SAAgB,IAAI,CAAC,MAAc;QACjC,OAAO,IAAA,6BAAY,EAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAFe,cAAI,OAEnB,CAAA;IAED,SAAgB,KAAK;QACnB,OAAO,IAAA,+BAAa,GAAE,CAAC;IACzB,CAAC;IAFe,eAAK,QAEpB,CAAA;IAED,SAAgB,WAAW;QACzB,OAAO,IAAA,qCAAmB,GAAE,CAAC;IAC/B,CAAC;IAFe,qBAAW,cAE1B,CAAA;IAED,SAAgB,QAAQ;QACtB,OAAO,IAAA,sCAAgB,GAAE,CAAC;IAC5B,CAAC;IAFe,kBAAQ,WAEvB,CAAA;IAED,IAAiB,QAAQ,CAsBxB;IAtBD,WAAiB,QAAQ;QACvB,SAAgB,MAAM;YACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;QAC1B,CAAC;QAFe,eAAM,SAErB,CAAA;QACD,SAAgB,MAAM;YACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;QAC1B,CAAC;QAFe,eAAM,SAErB,CAAA;QACD,SAAgB,OAAO;YACrB,OAAO,IAAA,mCAAe,GAAE,CAAC;QAC3B,CAAC;QAFe,gBAAO,UAEtB,CAAA;QACD,SAAgB,IAAI,CAAC,MAAc;YACjC,OAAO,IAAA,6BAAY,EAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAFe,aAAI,OAEnB,CAAA;QACD,SAAgB,KAAK;YACnB,OAAO,IAAA,+BAAa,GAAE,CAAC;QACzB,CAAC;QAFe,cAAK,QAEpB,CAAA;QACD,SAAgB,WAAW;YACzB,OAAO,IAAA,+BAAa,GAAE,CAAC;QACzB,CAAC;QAFe,oBAAW,cAE1B,CAAA;QACD,SAAgB,QAAQ;YACtB,OAAO,IAAA,sCAAgB,GAAE,CAAC;QAC5B,CAAC;QAFe,iBAAQ,WAEvB,CAAA;IACH,CAAC,EAtBgB,QAAQ,GAAR,kBAAQ,KAAR,kBAAQ,QAsBxB;AACH,CAAC,EApDgB,SAAS,yBAAT,SAAS,QAoDzB"}
1
+ {"version":3,"file":"validator.namespace.js","sourceRoot":"","sources":["../../../../src/common/decorators/dto/validator.namespace.ts"],"names":[],"mappings":";;;AAAA,yDAAoE;AACpE,yDAAoE;AACpE,2DAAuE;AACvE,qDAA8D;AAC9D,uDAAiE;AACjE,uDAAuE;AACvE,+DAA2E;AAC3E,yDAAoE;AAEpE,IAAiB,SAAS,CA4DzB;AA5DD,WAAiB,SAAS;IACxB,SAAgB,MAAM;QACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;IAC1B,CAAC;IAFe,gBAAM,SAErB,CAAA;IAED,SAAgB,MAAM;QACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;IAC1B,CAAC;IAFe,gBAAM,SAErB,CAAA;IAED,SAAgB,OAAO;QACrB,OAAO,IAAA,mCAAe,GAAE,CAAC;IAC3B,CAAC;IAFe,iBAAO,UAEtB,CAAA;IAED,SAAgB,IAAI,CAAC,MAAc;QACjC,OAAO,IAAA,6BAAY,EAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAFe,cAAI,OAEnB,CAAA;IAED,SAAgB,KAAK;QACnB,OAAO,IAAA,+BAAa,GAAE,CAAC;IACzB,CAAC;IAFe,eAAK,QAEpB,CAAA;IAED,SAAgB,WAAW;QACzB,OAAO,IAAA,qCAAmB,GAAE,CAAC;IAC/B,CAAC;IAFe,qBAAW,cAE1B,CAAA;IAED,SAAgB,QAAQ;QACtB,OAAO,IAAA,sCAAgB,GAAE,CAAC;IAC5B,CAAC;IAFe,kBAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAmB,GAAgB;QACvD,OAAO,IAAA,iCAAc,EAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAFe,gBAAM,SAErB,CAAA;IAED,IAAiB,QAAQ,CA0BxB;IA1BD,WAAiB,QAAQ;QACvB,SAAgB,MAAM;YACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;QAC1B,CAAC;QAFe,eAAM,SAErB,CAAA;QACD,SAAgB,MAAM;YACpB,OAAO,IAAA,iCAAc,GAAE,CAAC;QAC1B,CAAC;QAFe,eAAM,SAErB,CAAA;QACD,SAAgB,OAAO;YACrB,OAAO,IAAA,mCAAe,GAAE,CAAC;QAC3B,CAAC;QAFe,gBAAO,UAEtB,CAAA;QACD,SAAgB,IAAI,CAAC,MAAc;YACjC,OAAO,IAAA,6BAAY,EAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAFe,aAAI,OAEnB,CAAA;QACD,SAAgB,KAAK;YACnB,OAAO,IAAA,+BAAa,GAAE,CAAC;QACzB,CAAC;QAFe,cAAK,QAEpB,CAAA;QACD,SAAgB,WAAW;YACzB,OAAO,IAAA,+BAAa,GAAE,CAAC;QACzB,CAAC;QAFe,oBAAW,cAE1B,CAAA;QACD,SAAgB,QAAQ;YACtB,OAAO,IAAA,sCAAgB,GAAE,CAAC;QAC5B,CAAC;QAFe,iBAAQ,WAEvB,CAAA;QAED,SAAgB,MAAM,CAAmB,GAAgB;YACvD,OAAO,IAAA,iCAAc,EAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAFe,eAAM,SAErB,CAAA;IACH,CAAC,EA1BgB,QAAQ,GAAR,kBAAQ,KAAR,kBAAQ,QA0BxB;AACH,CAAC,EA5DgB,SAAS,yBAAT,SAAS,QA4DzB"}
@@ -0,0 +1,4 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { ExceptionHandler } from '../../class/exception-handler';
3
+ export declare const ERROR_HANDLER_KEY = "ERROR_HANDLER_KEY";
4
+ export declare const UseExceptionHandler: (handler: Type<ExceptionHandler>) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UseExceptionHandler = exports.ERROR_HANDLER_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.ERROR_HANDLER_KEY = 'ERROR_HANDLER_KEY';
6
+ const UseExceptionHandler = (handler) => (0, common_1.SetMetadata)(exports.ERROR_HANDLER_KEY, handler);
7
+ exports.UseExceptionHandler = UseExceptionHandler;
8
+ //# sourceMappingURL=error-handler.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/response/error-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAIhC,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,mBAAmB,GAAG,CAAC,OAA+B,EAAE,EAAE,CACrE,IAAA,oBAAW,EAAC,yBAAiB,EAAE,OAAO,CAAC,CAAC;AAD7B,QAAA,mBAAmB,uBACU"}
@@ -1,8 +1,7 @@
1
1
  import { IMapper } from '../../interfaces/generic.mapper';
2
- import { IResponseHandler } from '../../interfaces/response-handler';
3
2
  import { IService } from '../../interfaces/crud.service';
4
3
  import { Persistence } from '../../../core/infra/generic.persistence';
5
4
  import { Domain } from '../../../core/domain/generic.domain';
6
5
  import { View } from '../../../core/app/dto/generic.view';
7
6
  import { DtoMapper } from '../../../core/app/dto/generic.create.dto';
8
- export declare function HandleResponse<M extends IMapper<T, D, V>, T extends Persistence = ReturnType<M['DomainToPersistence']>, D extends Domain = ReturnType<M['PersistenceToDomain']>, V extends View = ReturnType<M['DomainToView']>, DTO extends DtoMapper<D, DTO> = DtoMapper<D>, S extends IService<T, D, V, DTO> = IService<T, D, V, DTO>>(handlers?: IResponseHandler): MethodDecorator;
7
+ export declare function HandleResponse<M extends IMapper<T, D, V>, T extends Persistence = ReturnType<M['DomainToPersistence']>, D extends Domain = ReturnType<M['PersistenceToDomain']>, V extends View = ReturnType<M['DomainToView']>, DTO extends DtoMapper<D, DTO> = DtoMapper<D>, S extends IService<T, D, V, DTO> = IService<T, D, V, DTO>>(): MethodDecorator;
@@ -1,16 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HandleResponse = HandleResponse;
4
+ const core_1 = require("@nestjs/core");
4
5
  const response_handler_1 = require("../../../core/app/response-handler");
5
6
  const iroh_service_1 = require("../../../core/iroh.service");
6
- function HandleResponse(handlers) {
7
+ const mapper_decorator_1 = require("./mapper.decorator");
8
+ const error_handler_decorator_1 = require("./error-handler.decorator");
9
+ function HandleResponse() {
7
10
  return function (target, propertyKey, descriptor) {
8
11
  const { value: method } = descriptor;
12
+ const reflector = new core_1.Reflector();
9
13
  const wrapped = function (...args) {
10
14
  const result = method.apply(this, args);
11
15
  const getMapper = () => {
12
- if (handlers?.view) {
13
- return handlers.view.map;
16
+ const Mapper = reflector.get(mapper_decorator_1.MAPPER_KEY, method);
17
+ if (Mapper) {
18
+ const instance = new Mapper();
19
+ return (domain) => instance.map(domain);
14
20
  }
15
21
  if (this?.service instanceof iroh_service_1.Service) {
16
22
  const EntityMapper = this.service.mapper;
@@ -19,8 +25,10 @@ function HandleResponse(handlers) {
19
25
  return (x) => x;
20
26
  };
21
27
  const getHandler = () => {
22
- if (handlers?.error) {
23
- return handlers.error.handle;
28
+ const Handler = reflector.get(error_handler_decorator_1.ERROR_HANDLER_KEY, method);
29
+ if (Handler) {
30
+ const instance = new Handler();
31
+ return (error) => instance.handle(error);
24
32
  }
25
33
  return null;
26
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handle-response.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/response/handle-response.decorator.ts"],"names":[],"mappings":";;AAWA,wCAuDC;AAlED,yEAAqE;AAQrE,6DAAqD;AAGrD,SAAgB,cAAc,CAO5B,QAA2B;IAC3B,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,UAA8B;QAE9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAErC,MAAM,OAAO,GAAG,UAAiC,GAAG,IAAW;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAExC,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC;oBACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,CAAC;gBACD,IAAI,IAAI,EAAE,OAAO,YAAY,sBAAO,EAAE,CAAC;oBACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAW,CAAC;oBAC9C,OAAO,YAAY,CAAC,YAAY,CAAC;gBACnC,CAAC;gBACD,OAAO,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,GAAG,EAAE;gBACtB,IAAI,QAAQ,EAAE,KAAK,EAAE,CAAC;oBACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/B,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAEnC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,MAA4B,CAAC;gBAC7C,OAAO,kCAAe,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,IAAI,GAAG,MAAmB,CAAC;YACjC,OAAO,kCAAe,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"handle-response.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/response/handle-response.decorator.ts"],"names":[],"mappings":";;AAiBA,wCAkEC;AAlFD,uCAAyC;AAEzC,yEAAqE;AAOrE,6DAAqD;AAErD,yDAAgD;AAChD,uEAA8D;AAI9D,SAAgB,cAAc;IAQ5B,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,UAA8B;QAE9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,gBAAS,EAAE,CAAC;QAElC,MAAM,OAAO,GAAG,UAAiC,GAAG,IAAW;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAExC,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAmB,6BAAU,EAAE,MAAM,CAAC,CAAC;gBACnE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;oBAC9B,OAAO,CAAC,MAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBAED,IAAI,IAAI,EAAE,OAAO,YAAY,sBAAO,EAAE,CAAC;oBACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAW,CAAC;oBAC9C,OAAO,YAAY,CAAC,YAAY,CAAC;gBACnC,CAAC;gBACD,OAAO,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,GAAG,EAAE;gBACtB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAC3B,2CAAiB,EACjB,MAAM,CACP,CAAC;gBACF,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC/B,OAAO,CAAC,KAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChD,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAEnC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,MAA4B,CAAC;gBAC7C,OAAO,kCAAe,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,IAAI,GAAG,MAAmB,CAAC;YACjC,OAAO,kCAAe,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export * from './api-response.decorator';
2
2
  export * from './entity-response.decorator';
3
+ export * from './error-handler.decorator';
3
4
  export * from './handle-response.decorator';
5
+ export * from './mapper.decorator';
4
6
  export * from './pagination-response.decorator';
@@ -16,6 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./api-response.decorator"), exports);
18
18
  __exportStar(require("./entity-response.decorator"), exports);
19
+ __exportStar(require("./error-handler.decorator"), exports);
19
20
  __exportStar(require("./handle-response.decorator"), exports);
21
+ __exportStar(require("./mapper.decorator"), exports);
20
22
  __exportStar(require("./pagination-response.decorator"), exports);
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/decorators/response/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,8DAA4C;AAC5C,8DAA4C;AAC5C,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/decorators/response/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,8DAA4C;AAC5C,4DAA0C;AAC1C,8DAA4C;AAC5C,qDAAmC;AACnC,kEAAgD"}
@@ -0,0 +1,6 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { ViewMapper } from '../../class/view-mapper.';
3
+ import { Domain } from '../../../core/domain/generic.domain';
4
+ import { View } from '../../../core/app/dto/generic.view';
5
+ export declare const MAPPER_KEY = "MAPPER_KEY";
6
+ export declare const UseMapper: <D extends Domain = Domain, V extends View = View>(mapper: Type<ViewMapper<D, V>>) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UseMapper = exports.MAPPER_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.MAPPER_KEY = 'MAPPER_KEY';
6
+ const UseMapper = (mapper) => (0, common_1.SetMetadata)(exports.MAPPER_KEY, mapper);
7
+ exports.UseMapper = UseMapper;
8
+ //# sourceMappingURL=mapper.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/response/mapper.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAMhC,QAAA,UAAU,GAAG,YAAY,CAAC;AAEhC,MAAM,SAAS,GAAG,CACvB,MAA8B,EAC9B,EAAE,CAAC,IAAA,oBAAW,EAAC,kBAAU,EAAE,MAAM,CAAC,CAAC;AAFxB,QAAA,SAAS,aAEe"}
@@ -1,3 +1,4 @@
1
+ export * from './class';
1
2
  export * from './database';
2
3
  export * from './decorators';
3
4
  export * from './dto';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./class"), exports);
17
18
  __exportStar(require("./database"), exports);
18
19
  __exportStar(require("./decorators"), exports);
19
20
  __exportStar(require("./dto"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,wCAAsB;AACtB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,+CAA6B;AAC7B,wCAAsB;AACtB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,4CAA0B;AAC1B,gDAA8B;AAC9B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rafikidota/iroh",
3
- "version": "0.49.1",
3
+ "version": "0.51.0",
4
4
  "description": "Sometimes, the best way to solve your own problems is to help someone else.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,12 +15,10 @@
15
15
  "module": "./dist/index.js",
16
16
  "types": "./dist/index.d.ts",
17
17
  "dependencies": {
18
+ "@rafikidota/iroh-schematics": "0.0.1",
18
19
  "chalk": "4.1.2"
19
20
  },
20
21
  "devDependencies": {
21
- "@angular-devkit/core": "19.2.13",
22
- "@angular-devkit/schematics": "19.2.13",
23
- "@angular-devkit/schematics-cli": "19.2.13",
24
22
  "@eslint/eslintrc": "3.3.1",
25
23
  "@eslint/js": "9.39.1",
26
24
  "@nestjs/common": "11.1.9",
@@ -107,10 +105,6 @@
107
105
  "scripts": {
108
106
  "prebuild": "rimraf -rf dist",
109
107
  "build": "tsc -p tsconfig.json",
110
- "postbuild": "npm run move:crud && npm run move:init && npm run move:usecase",
111
- "move:crud": "mkdir -p dist/schematics/crud/files/ts && cp -ar ./src/schematics/crud/files/ts/* dist/schematics/crud/files/ts",
112
- "move:init": "mkdir -p dist/schematics/init/files/ts && cp -ar ./src/schematics/init/files/ts/* dist/schematics/init/files/ts",
113
- "move:usecase": "mkdir -p dist/schematics/use-case/files/ts && cp -ar ./src/schematics/use-case/files/ts/* dist/schematics/use-case/files/ts",
114
108
  "lint": "npx eslint --debug . --fix",
115
109
  "format": "prettier --write \"**/*.ts\""
116
110
  }
@@ -1,3 +0,0 @@
1
- import { Rule } from '@angular-devkit/schematics';
2
- import { CrudOptions } from './schema';
3
- export declare function main(options: CrudOptions): Rule;
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.main = main;
4
- const core_1 = require("@angular-devkit/core");
5
- const schematics_1 = require("@angular-devkit/schematics");
6
- const utils_1 = require("../utils");
7
- const module_finder_1 = require("../utils/module.finder");
8
- const name_parser_1 = require("../utils/name.parser");
9
- const source_root_helpers_1 = require("../utils/source-root.helpers");
10
- const string_utils_1 = require("../utils/string-utils");
11
- const strings_1 = require("@angular-devkit/core/src/utils/strings");
12
- function main(options) {
13
- options = transform(options);
14
- return (tree, context) => {
15
- return (0, schematics_1.branchAndMerge)((0, schematics_1.chain)([
16
- (0, source_root_helpers_1.mergeSourceRoot)(options),
17
- addDeclarationToModule(options),
18
- (0, schematics_1.mergeWith)(generate(options)),
19
- ]))(tree, context);
20
- };
21
- }
22
- function transform(options) {
23
- const target = Object.assign({}, options);
24
- target.metadata = 'imports';
25
- target.type = 'module';
26
- const location = new name_parser_1.NameParser().parse(target);
27
- target.name = core_1.strings.dasherize(location.name);
28
- target.path = (0, core_1.join)(core_1.strings.dasherize(location.path), target.name);
29
- target.language = 'ts';
30
- return target;
31
- }
32
- function generate(options) {
33
- return (context) => (0, schematics_1.apply)((0, schematics_1.url)((0, core_1.join)('./files', options.language)), [
34
- (0, schematics_1.template)({
35
- ...core_1.strings,
36
- ...options,
37
- lowerCase: string_utils_1.lowerCase,
38
- lowercased: (name) => {
39
- const classifiedName = (0, strings_1.classify)(name);
40
- return (classifiedName.charAt(0).toLowerCase() + classifiedName.slice(1));
41
- },
42
- upperCase: string_utils_1.upperCase,
43
- camelize: strings_1.camelize,
44
- dashToUnderscore: string_utils_1.dashToUnderscore,
45
- }),
46
- (0, schematics_1.move)(options.path),
47
- ])(context);
48
- }
49
- function addDeclarationToModule(options) {
50
- return (tree) => {
51
- if (options.skipImport !== undefined && options.skipImport) {
52
- return tree;
53
- }
54
- options.module = new module_finder_1.ModuleFinder(tree).find({
55
- name: options.name,
56
- path: options.path,
57
- });
58
- if (!options.module) {
59
- return tree;
60
- }
61
- const content = tree.read(options.module).toString();
62
- const declarator = new utils_1.ModuleDeclarator();
63
- const declarationOptions = Object.assign({}, options);
64
- tree.overwrite(options.module, declarator.declare(content, declarationOptions));
65
- return tree;
66
- };
67
- }
68
- //# sourceMappingURL=crud.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crud.factory.js","sourceRoot":"","sources":["../../../src/schematics/crud/crud.factory.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import { Controller } from '@nestjs/common';
2
- import { Query } from '@nestjs/common';
3
- import { Body } from '@nestjs/common';
4
- import { Param } from '@nestjs/common';
5
- import { ParseUUIDPipe } from '@nestjs/common';
6
- import { ApiTags } from '@nestjs/swagger';
7
-
8
- import { IrohController } from '@rafikidota/iroh';
9
- import { GenericPost } from '@rafikidota/iroh';
10
- import { GenericGet } from '@rafikidota/iroh';
11
- import { GenericGetById } from '@rafikidota/iroh';
12
- import { GenericPatch } from '@rafikidota/iroh';
13
- import { GenericDelete } from '@rafikidota/iroh';
14
- import { ParseQueryPipe } from '@rafikidota/iroh';
15
- import { SearchDto } from '@rafikidota/iroh';
16
- import { QueryOptionDto } from '@rafikidota/iroh';
17
-
18
- import { <%= classify(name) %>Service } from './<%= lowerCase(name) %>.service';
19
- import { <%= classify(name) %>Mapper } from './infra/<%= lowerCase(name) %>.mapper';
20
- import { Create<%= classify(name) %>Dto } from './app/dto/<%= lowerCase(name) %>.create.dto';
21
- import { Update<%= classify(name) %>Dto } from './app/dto/<%= lowerCase(name) %>.update.dto';
22
- import { <%= classify(name) %>View } from './app/dto/<%= lowerCase(name) %>.view';
23
-
24
- @ApiTags('<%= classify(name) %>')
25
- @Controller('<%= dasherize(name) %>')
26
- export class <%= classify(name) %>Controller extends IrohController<<%= classify(name) %>Mapper> {
27
- constructor(readonly service: <%= classify(name) %>Service) {
28
- super(service);
29
- }
30
-
31
- @GenericPost(Create<%= classify(name) %>Dto, <%= classify(name) %>View)
32
- create(body: Create<%= classify(name) %>Dto): Promise<<%= classify(name) %>View> {
33
- return super.create(body);
34
- }
35
-
36
- @GenericGet(<%= classify(name) %>View)
37
- paginate(@Query(ParseQueryPipe) query: SearchDto): Promise<<%= classify(name) %>View[]> {
38
- return super.paginate(query);
39
- }
40
-
41
- @GenericGetById(<%= classify(name) %>View)
42
- findById(
43
- @Param('id', ParseUUIDPipe) id: string,
44
- @Query(ParseQueryPipe) query: QueryOptionDto,
45
- ): Promise<<%= classify(name) %>View> {
46
- return super.findById(id, query);
47
- }
48
-
49
- @GenericPatch(Update<%= classify(name) %>Dto, <%= classify(name) %>View)
50
- update(
51
- @Param('id', ParseUUIDPipe) id: string,
52
- @Body() body: Update<%= classify(name) %>Dto,
53
- ): Promise<<%= classify(name) %>View> {
54
- return super.update(id, body);
55
- }
56
-
57
- @GenericDelete()
58
- remove(@Param('id', ParseUUIDPipe) id: string): Promise<<%= classify(name) %>View> {
59
- return super.remove(id);
60
- }
61
- }
@@ -1,14 +0,0 @@
1
- import { Module } from '@nestjs/common';
2
- import { TypeOrmModule } from '@nestjs/typeorm';
3
- import { <%= classify(name) %>Controller } from './<%= lowerCase(name) %>.controller';
4
- import { <%= classify(name) %>Service } from './<%= lowerCase(name) %>.service';
5
- import { <%= classify(name) %>Repository } from './infra/<%= lowerCase(name) %>.repository';
6
- import { <%= classify(name) %>Persistence } from './infra/<%= lowerCase(name) %>.persistence';
7
-
8
- @Module({
9
- controllers: [<%= classify(name) %>Controller],
10
- providers: [<%= classify(name) %>Service, <%= classify(name) %>Repository],
11
- imports: [TypeOrmModule.forFeature([<%= classify(name) %>Persistence])],
12
- exports: [TypeOrmModule, <%= classify(name) %>Service, <%= classify(name) %>Repository],
13
- })
14
- export class <%= classify(name) %>Module {}
@@ -1,11 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { IrohService } from '@rafikidota/iroh';
3
- import { <%= classify(name) %>Repository } from './infra/<%= lowerCase(name) %>.repository';
4
- import { <%= classify(name) %>Mapper } from './infra/<%= lowerCase(name) %>.mapper';
5
-
6
- @Injectable()
7
- export class <%= classify(name) %>Service extends IrohService<<%= classify(name) %>Mapper> {
8
- constructor(readonly repository: <%= classify(name) %>Repository) {
9
- super(repository);
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- import { DtoMapper } from '@rafikidota/iroh';
2
- import { <%= classify(name) %>Domain } from '../../domain/<%= lowerCase(name) %>.domain';
3
- import { New<%= classify(name) %>Props } from '../../domain/<%= lowerCase(name) %>.domain';
4
-
5
- export class Create<%= classify(name) %>Dto
6
- implements New<%= classify(name) %>Props, DtoMapper<<%= classify(name) %>Domain, Create<%= classify(name) %>Dto>
7
- {
8
- ToDomain(dto: Create<%= classify(name) %>Dto): <%= classify(name) %>Domain {
9
- return <%= classify(name) %>Domain.create(dto).unwrap();
10
- }
11
- }
@@ -1,4 +0,0 @@
1
- import { PartialType } from '@nestjs/swagger';
2
- import { Create<%= classify(name) %>Dto } from './<%= lowerCase(name) %>.create.dto';
3
-
4
- export class Update<%= classify(name) %>Dto extends PartialType(Create<%= classify(name) %>Dto) {}
@@ -1,30 +0,0 @@
1
- import { ApiProperty } from '@nestjs/swagger';
2
- import { IntersectionType } from '@nestjs/swagger';
3
- import { OmitType } from '@nestjs/swagger';
4
- import { PartialType } from '@nestjs/swagger';
5
- import { View } from '@rafikidota/iroh';
6
- import { Create<%= classify(name) %>Dto } from './<%= lowerCase(name) %>.create.dto';
7
- import { <%= classify(name) %>Domain } from '../../domain/<%= lowerCase(name) %>.domain';
8
- import { I<%= classify(name) %> } from '../../domain/<%= lowerCase(name) %>.interface';
9
-
10
- export class <%= classify(name) %>View
11
- extends OmitType(
12
- IntersectionType(PartialType(Create<%= classify(name) %>Dto), View),
13
- [],
14
- )
15
- implements I<%= classify(name) %>
16
- {
17
- @ApiProperty()
18
- id: string;
19
- @ApiProperty()
20
- createdAt: Date;
21
- @ApiProperty()
22
- updatedAt: Date;
23
-
24
- constructor(domain: <%= classify(name) %>Domain) {
25
- super();
26
- this.id = domain.id;
27
- this.createdAt = domain.createdAt;
28
- this.updatedAt = domain.updatedAt;
29
- }
30
- }
@@ -1,28 +0,0 @@
1
- import { DeepPartial } from 'typeorm';
2
- import { Result } from '@rafikidota/iroh';
3
- import { DomainFactory } from '@rafikidota/iroh';
4
- import { Domain } from '@rafikidota/iroh';
5
- import { IUpdatableDomain } from '@rafikidota/iroh';
6
- import { Props } from '@rafikidota/iroh';
7
- import { I<%= classify(name) %> } from './<%= lowerCase(name) %>.interface';
8
-
9
- export type <%= classify(name) %>Props = Props<<%= classify(name) %>Domain>;
10
-
11
- export type New<%= classify(name) %>Props = Omit<<%= classify(name) %>Props, ''>;
12
-
13
- export type Update<%= classify(name) %>Props = DeepPartial<New<%= classify(name) %>Props>;
14
-
15
- export type I<%= classify(name) %>Domain = I<%= classify(name) %> & IUpdatableDomain<<%= classify(name) %>Domain>;
16
-
17
- export class <%= classify(name) %>Domain extends Domain implements I<%= classify(name) %>Domain {
18
-
19
- static create(props: New<%= classify(name) %>Props): Result<<%= classify(name) %>Domain> {
20
- const domain = DomainFactory.create(<%= classify(name) %>Domain, { ...props });
21
- return Result.Ok(domain);
22
- }
23
-
24
- public update(props: Update<%= classify(name) %>Props): Result<<%= classify(name) %>Domain> {
25
- Object.assign(this, { updatedAt: new Date(), ...props });
26
- return Result.Ok(this);
27
- }
28
- }