@decaf-ts/for-nest 0.0.2 → 0.0.3

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 (47) hide show
  1. package/dist/for-nest.cjs +468 -15
  2. package/dist/for-nest.esm.cjs +468 -14
  3. package/lib/RepoFactory.cjs +27 -0
  4. package/lib/RepoFactory.d.ts +6 -0
  5. package/lib/core-module.cjs +27 -7
  6. package/lib/core-module.d.ts +7 -2
  7. package/lib/decoration.cjs +123 -0
  8. package/lib/decoration.d.ts +1 -0
  9. package/lib/decorators/ApiProperty.cjs +63 -0
  10. package/lib/decorators/ApiProperty.d.ts +27 -0
  11. package/lib/decorators/helpers.cjs +140 -0
  12. package/lib/decorators/helpers.d.ts +8 -0
  13. package/lib/decorators/index.cjs +19 -0
  14. package/lib/decorators/index.d.ts +2 -0
  15. package/lib/esm/RepoFactory.d.ts +6 -0
  16. package/lib/esm/RepoFactory.js +24 -0
  17. package/lib/esm/core-module.d.ts +7 -2
  18. package/lib/esm/core-module.js +27 -7
  19. package/lib/esm/decoration.d.ts +1 -0
  20. package/lib/esm/decoration.js +121 -0
  21. package/lib/esm/decorators/ApiProperty.d.ts +27 -0
  22. package/lib/esm/decorators/ApiProperty.js +57 -0
  23. package/lib/esm/decorators/helpers.d.ts +8 -0
  24. package/lib/esm/decorators/helpers.js +132 -0
  25. package/lib/esm/decorators/index.d.ts +2 -0
  26. package/lib/esm/decorators/index.js +3 -0
  27. package/lib/esm/index.d.ts +7 -2
  28. package/lib/esm/index.js +8 -3
  29. package/lib/esm/model-module.d.ts +8 -0
  30. package/lib/esm/model-module.js +119 -0
  31. package/lib/esm/module.d.ts +1 -1
  32. package/lib/esm/module.js +11 -3
  33. package/lib/esm/types.d.ts +1 -0
  34. package/lib/esm/types.js +1 -1
  35. package/lib/esm/utils.d.ts +2 -0
  36. package/lib/esm/utils.js +11 -0
  37. package/lib/index.cjs +8 -3
  38. package/lib/index.d.ts +7 -2
  39. package/lib/model-module.cjs +122 -0
  40. package/lib/model-module.d.ts +8 -0
  41. package/lib/module.cjs +11 -3
  42. package/lib/module.d.ts +1 -1
  43. package/lib/types.cjs +1 -1
  44. package/lib/types.d.ts +1 -0
  45. package/lib/utils.cjs +14 -0
  46. package/lib/utils.d.ts +2 -0
  47. package/package.json +4 -2
@@ -0,0 +1,119 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var DecafModelModule_1;
14
+ import { Body, Controller, Get, Param, Post } from "@nestjs/common";
15
+ import { ApiBadRequestResponse, ApiBody, ApiCreatedResponse, ApiExtraModels, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiParam, ApiTags, ApiUnprocessableEntityResponse, getSchemaPath, } from "@nestjs/swagger";
16
+ import { Adapter, Repository } from "@decaf-ts/core";
17
+ import { LoggedClass, Logging, toKebabCase } from "@decaf-ts/logging";
18
+ import { repoForModel } from "./utils.js";
19
+ import { RepoFactory } from "./RepoFactory.js";
20
+ import { Module } from "@nestjs/common";
21
+ let DecafModelModule = class DecafModelModule {
22
+ static { DecafModelModule_1 = this; }
23
+ static get log() {
24
+ if (!this._logger)
25
+ this._logger = Logging.for(DecafModelModule_1);
26
+ return this._logger;
27
+ }
28
+ static toModelController(modelClass) {
29
+ const log = this.log.for(this.toModelController);
30
+ log.debug(`Creating model controller... ${modelClass.name}`);
31
+ const modelName = toKebabCase(Repository.table(modelClass));
32
+ const route = modelName;
33
+ let DynamicModelController = class DynamicModelController extends LoggedClass {
34
+ constructor(repoFactory) {
35
+ super();
36
+ this.repoFactory = repoFactory;
37
+ try {
38
+ this.repo = this.repoFactory.for(modelClass.name);
39
+ }
40
+ catch (e) {
41
+ log.error(`Failed to get repository for ${modelClass.name}`, e);
42
+ }
43
+ }
44
+ async create(data) {
45
+ const log = this.log.for(this.create);
46
+ log.verbose(`creating new ${modelName}`);
47
+ const r = repoForModel("Account");
48
+ const created = await r.create(data);
49
+ log.info(`created new ${modelName} with id ${created[r.pk]}`);
50
+ return created;
51
+ }
52
+ async read(id) {
53
+ const log = this.log.for(this.read);
54
+ log.debug(`reading ${modelName} with ${this.repo.pk} ${id}`);
55
+ const read = await this.repo.read(id);
56
+ log.info(`read ${modelName} with id ${read[this.repo.pk]}`);
57
+ return read;
58
+ }
59
+ };
60
+ __decorate([
61
+ Post(),
62
+ ApiOperation({ summary: `Create a new ${modelName}.` }),
63
+ ApiBody({
64
+ description: `Payload for ${modelName}`,
65
+ schema: { $ref: getSchemaPath(modelClass) },
66
+ }),
67
+ ApiCreatedResponse({ description: `${modelName} created successfully.` }),
68
+ ApiBadRequestResponse({ description: "Payload validation failed." }),
69
+ ApiUnprocessableEntityResponse({
70
+ description: "Repository rejected the provided payload.",
71
+ }),
72
+ __param(0, Body()),
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [Object]),
75
+ __metadata("design:returntype", Promise)
76
+ ], DynamicModelController.prototype, "create", null);
77
+ __decorate([
78
+ Get(":id"),
79
+ ApiOperation({ summary: `Retrieve a ${modelName} by id.` }),
80
+ ApiParam({
81
+ name: "id",
82
+ description: "Primary key",
83
+ example: "1234-5678",
84
+ }),
85
+ ApiOkResponse({ description: `${modelName} retrieved successfully.` }),
86
+ ApiNotFoundResponse({
87
+ description: "No record matches the provided identifier.",
88
+ }),
89
+ __param(0, Param("id")),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [String]),
92
+ __metadata("design:returntype", Promise)
93
+ ], DynamicModelController.prototype, "read", null);
94
+ DynamicModelController = __decorate([
95
+ Controller(route),
96
+ ApiTags(modelName),
97
+ ApiExtraModels(modelClass),
98
+ __metadata("design:paramtypes", [RepoFactory])
99
+ ], DynamicModelController);
100
+ return DynamicModelController;
101
+ }
102
+ static forRoot(flavour) {
103
+ const log = this.log.for(this.forRoot);
104
+ log.info(`Generating controllers for flavour...`);
105
+ const trackedModels = Adapter.models(flavour);
106
+ const controllers = trackedModels.map(this.toModelController.bind(this));
107
+ log.info(`Generated ${controllers.length} controllers`);
108
+ return {
109
+ module: DecafModelModule_1,
110
+ controllers,
111
+ providers: [RepoFactory],
112
+ };
113
+ }
114
+ };
115
+ DecafModelModule = DecafModelModule_1 = __decorate([
116
+ Module({})
117
+ ], DecafModelModule);
118
+ export { DecafModelModule };
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFFBQVEsRUFDUixPQUFPLEVBQ1AsOEJBQThCLEVBQzlCLGFBQWEsR0FDZCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBVSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBZ0I7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSx5QkFBc0I7QUFDNUMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjs7SUFHakIsTUFBTSxLQUFLLEdBQUc7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFnQixDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFYyxBQUFQLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDOUIsVUFBaUM7UUFFakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENB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Q0FBQztHQUNFLGdCQUFnQixDQStJNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb2R5LCBDb250cm9sbGVyLCBHZXQsIFBhcmFtLCBQb3N0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQge1xuICBBcGlCYWRSZXF1ZXN0UmVzcG9uc2UsXG4gIEFwaUJvZHksXG4gIEFwaUNyZWF0ZWRSZXNwb25zZSxcbiAgQXBpRXh0cmFNb2RlbHMsXG4gIEFwaU5vdEZvdW5kUmVzcG9uc2UsXG4gIEFwaU9rUmVzcG9uc2UsXG4gIEFwaU9wZXJhdGlvbixcbiAgQXBpUGFyYW0sXG4gIEFwaVRhZ3MsXG4gIEFwaVVucHJvY2Vzc2FibGVFbnRpdHlSZXNwb25zZSxcbiAgZ2V0U2NoZW1hUGF0aCxcbn0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuaW1wb3J0IHsgQWRhcHRlciwgUmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwsIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBMb2dnZWRDbGFzcywgTG9nZ2VyLCBMb2dnaW5nLCB0b0tlYmFiQ2FzZSB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgcmVwb0Zvck1vZGVsIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IFJlcG9GYWN0b3J5IH0gZnJvbSBcIi4vUmVwb0ZhY3RvcnlcIjtcbmltcG9ydCB7IER5bmFtaWNNb2R1bGUsIE1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuXG5ATW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlY2FmTW9kZWxNb2R1bGUge1xuICBwcml2YXRlIHN0YXRpYyBfbG9nZ2VyOiBMb2dnZXI7XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBnZXQgbG9nKCk6IExvZ2dlciB7XG4gICAgaWYgKCF0aGlzLl9sb2dnZXIpIHRoaXMuX2xvZ2dlciA9IExvZ2dpbmcuZm9yKERlY2FmTW9kZWxNb2R1bGUpO1xuICAgIHJldHVybiB0aGlzLl9sb2dnZXI7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0b01vZGVsQ29udHJvbGxlcjxUIGV4dGVuZHMgTW9kZWw8YW55Pj4oXG4gICAgbW9kZWxDbGFzczogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+XG4gICkge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnRvTW9kZWxDb250cm9sbGVyKTtcbiAgICBsb2cuZGVidWcoYENyZWF0aW5nIG1vZGVsIGNvbnRyb2xsZXIuLi4gJHttb2RlbENsYXNzLm5hbWV9YCk7XG4gICAgY29uc3QgbW9kZWxOYW1lID0gdG9LZWJhYkNhc2UoUmVwb3NpdG9yeS50YWJsZShtb2RlbENsYXNzKSk7XG4gICAgY29uc3Qgcm91dGUgPSBtb2RlbE5hbWU7XG5cbiAgICBAQ29udHJvbGxlcihyb3V0ZSlcbiAgICBAQXBpVGFncyhtb2RlbE5hbWUpXG4gICAgQEFwaUV4dHJhTW9kZWxzKG1vZGVsQ2xhc3MpXG4gICAgY2xhc3MgRHluYW1pY01vZGVsQ29udHJvbGxlciBleHRlbmRzIExvZ2dlZENsYXNzIHtcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwbzogYW55OyAvLz0gdGhpcy5yZXBvRmFjdG9yeS5mb3IobW9kZWxDbGFzcy5uYW1lKTtcblxuICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXBvRmFjdG9yeTogUmVwb0ZhY3RvcnkpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnJlcG8gPSB0aGlzLnJlcG9GYWN0b3J5LmZvcihtb2RlbENsYXNzLm5hbWUpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgYEZhaWxlZCB0byBnZXQgcmVwb3NpdG9yeSBmb3IgJHttb2RlbENsYXNzLm5hbWV9YCxcbiAgICAgICAgICAgIGUgYXMgRXJyb3JcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBQb3N0KClcbiAgICAgIEBBcGlPcGVyYXRpb24oeyBzdW1tYXJ5OiBgQ3JlYXRlIGEgbmV3ICR7bW9kZWxOYW1lfS5gIH0pXG4gICAgICBAQXBpQm9keSh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGF5bG9hZCBmb3IgJHttb2RlbE5hbWV9YCxcbiAgICAgICAgc2NoZW1hOiB7ICRyZWY6IGdldFNjaGVtYVBhdGgobW9kZWxDbGFzcykgfSxcbiAgICAgIH0pXG4gICAgICBAQXBpQ3JlYXRlZFJlc3BvbnNlKHsgZGVzY3JpcHRpb246IGAke21vZGVsTmFtZX0gY3JlYXRlZCBzdWNjZXNzZnVsbHkuYCB9KVxuICAgICAgQEFwaUJhZFJlcXVlc3RSZXNwb25zZSh7IGRlc2NyaXB0aW9uOiBcIlBheWxvYWQgdmFsaWRhdGlvbiBmYWlsZWQuXCIgfSlcbiAgICAgIEBBcGlVbnByb2Nlc3NhYmxlRW50aXR5UmVzcG9uc2Uoe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJSZXBvc2l0b3J5IHJlamVjdGVkIHRoZSBwcm92aWRlZCBwYXlsb2FkLlwiLFxuICAgICAgfSlcbiAgICAgIGFzeW5jIGNyZWF0ZShAQm9keSgpIGRhdGE6IFQpOiBQcm9taXNlPE1vZGVsPGFueT4+IHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGNyZWF0aW5nIG5ldyAke21vZGVsTmFtZX1gKTtcbiAgICAgICAgY29uc3QgciA9IHJlcG9Gb3JNb2RlbChcIkFjY291bnRcIik7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCByLmNyZWF0ZShkYXRhKTtcbiAgICAgICAgbG9nLmluZm8oYGNyZWF0ZWQgbmV3ICR7bW9kZWxOYW1lfSB3aXRoIGlkICR7Y3JlYXRlZFtyLnBrXX1gKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgICB9XG5cbiAgICAgIEBHZXQoXCI6aWRcIilcbiAgICAgIEBBcGlPcGVyYXRpb24oeyBzdW1tYXJ5OiBgUmV0cmlldmUgYSAke21vZGVsTmFtZX0gYnkgaWQuYCB9KVxuICAgICAgQEFwaVBhcmFtKHtcbiAgICAgICAgbmFtZTogXCJpZFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmltYXJ5IGtleVwiLFxuICAgICAgICBleGFtcGxlOiBcIjEyMzQtNTY3OFwiLFxuICAgICAgfSlcbiAgICAgIEBBcGlPa1Jlc3BvbnNlKHsgZGVzY3JpcHRpb246IGAke21vZGVsTmFtZX0gcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS5gIH0pXG4gICAgICBAQXBpTm90Rm91bmRSZXNwb25zZSh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIk5vIHJlY29yZCBtYXRjaGVzIHRoZSBwcm92aWRlZCBpZGVudGlmaWVyLlwiLFxuICAgICAgfSlcbiAgICAgIGFzeW5jIHJlYWQoQFBhcmFtKFwiaWRcIikgaWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5yZWFkKTtcbiAgICAgICAgbG9nLmRlYnVnKGByZWFkaW5nICR7bW9kZWxOYW1lfSB3aXRoICR7dGhpcy5yZXBvLnBrIGFzIHN0cmluZ30gJHtpZH1gKTtcbiAgICAgICAgY29uc3QgcmVhZCA9IGF3YWl0IHRoaXMucmVwby5yZWFkKGlkKTtcbiAgICAgICAgbG9nLmluZm8oYHJlYWQgJHttb2RlbE5hbWV9IHdpdGggaWQgJHtyZWFkW3RoaXMucmVwby5wa119YCk7XG4gICAgICAgIHJldHVybiByZWFkO1xuICAgICAgfVxuXG4gICAgICAvLyBAUG9zdCgpXG4gICAgICAvLyBAQXBpT3BlcmF0aW9uKHtzdW1tYXJ5OiBcIkNyZWF0ZSBhIG5ldyByZWNvcmQgZm9yIHRoZSBnaXZlbiBtb2RlbC5cIn0pXG4gICAgICAvLyBAQXBpQ3JlYXRlZFJlc3BvbnNlKHtkZXNjcmlwdGlvbjogXCJSZWNvcmQgY3JlYXRlZCBzdWNjZXNzZnVsbHkuXCJ9KVxuICAgICAgLy8gQEFwaUJhZFJlcXVlc3RSZXNwb25zZSh7ZGVzY3JpcHRpb246IFwiUGF5bG9hZCB2YWxpZGF0aW9uIGZhaWxlZC5cIn0pXG4gICAgICAvLyBAQXBpVW5wcm9jZXNzYWJsZUVudGl0eVJlc3BvbnNlKHtkZXNjcmlwdGlvbjogXCJSZXBvc2l0b3J5IHJlamVjdGVkIHRoZSBwcm92aWRlZCBwYXlsb2FkLlwifSlcbiAgICAgIC8vIGFzeW5jIGNyZWF0ZShAUGFyYW0oXCJtb2RlbFwiKSBtb2RlbDogc3RyaW5nLCBAQm9keSgpIGRhdGE6IGFueSkge1xuICAgICAgLy8gICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgICAvLyAgICAgbG9nLnZlcmJvc2UoYGNyZWF0aW5nIG5ldyAke21vZGVsfWApO1xuICAgICAgLy8gICAgIGxldCByZXBvOiBSZXBvPE1vZGVsPjtcbiAgICAgIC8vICAgICBsZXQgY3JlYXRlZDogTW9kZWw7XG4gICAgICAvLyAgICAgdHJ5IHtcbiAgICAgIC8vICAgICAgICAgcmVwbyA9IHJlcG9Gb3JNb2RlbChtb2RlbCk7XG4gICAgICAvLyAgICAgICAgIGNyZWF0ZWQgPSBhd2FpdCByZXBvLmNyZWF0ZShkYXRhKTtcbiAgICAgIC8vICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAvLyAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBuZXcgJHttb2RlbH1gLCBlIGFzIEVycm9yKTtcbiAgICAgIC8vICAgICAgICAgdGhyb3cgZTtcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgbG9nLmluZm8oYGNyZWF0ZWQgbmV3ICR7bW9kZWx9IHdpdGggaWQgJHtjcmVhdGVkW3JlcG8ucGtdfWApO1xuICAgICAgLy8gICAgIHJldHVybiBjcmVhdGVkO1xuICAgICAgLy8gfVxuXG4gICAgICAvLyBAR2V0KFwiOmlkXCIpXG4gICAgICAvLyBAQXBpT3BlcmF0aW9uKHtzdW1tYXJ5OiBcIlJldHJpZXZlIGEgc2luZ2xlIHJlY29yZCBieSBpZC5cIn0pXG4gICAgICAvLyBAQXBpUGFyYW0oe1xuICAgICAgLy8gICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgIC8vICAgICAvLyBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIG1vZGVsIHJlcG9zaXRvcnkgdG8gdGFyZ2V0LicgKyBgXFxuJHttb2RlbExpc3QubWFwKChtOiBzdHJpbmcsIGk6IG51bWJlcikgPT4gYCR7bX0gLSAke01ldGFkYXRhLmRlc2NyaXB0aW9uKHRyYWNrZWRNb2RlbHNbaV0pfWApLmpvaW4oJ1xcbicpfWAsXG4gICAgICAvLyAgICAgZXhhbXBsZTogXCJhZ2VudFwiLFxuICAgICAgLy8gfSlcbiAgICAgIC8vIEBBcGlQYXJhbSh7XG4gICAgICAvLyAgICAgbmFtZTogXCJpZFwiLFxuICAgICAgLy8gICAgIGRlc2NyaXB0aW9uOiBcIlByaW1hcnkga2V5IHZhbHVlIHVzZWQgdG8gbG9hZCB0aGUgcmVjb3JkLlwiLFxuICAgICAgLy8gICAgIGV4YW1wbGU6IFwiMTIzNC01Njc4XCIsXG4gICAgICAvLyB9KVxuICAgICAgLy8gQEFwaU9rUmVzcG9uc2Uoe2Rlc2NyaXB0aW9uOiBcIlJlY29yZCByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LlwifSlcbiAgICAgIC8vIEBBcGlOb3RGb3VuZFJlc3BvbnNlKHtkZXNjcmlwdGlvbjogXCJObyByZWNvcmQgbWF0Y2hlcyB0aGUgcHJvdmlkZWQgaWRlbnRpZmllci5cIn0pXG4gICAgICAvLyBhc3luYyByZWFkKEBQYXJhbShcIm1vZGVsXCIpIG1vZGVsOiBzdHJpbmcsIEBQYXJhbShcImlkXCIpIGlkOiBzdHJpbmcpIHtcbiAgICAgIC8vICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5yZWFkKTtcbiAgICAgIC8vICAgICBsZXQgcmVwbzogUmVwbzxNb2RlbD47XG4gICAgICAvLyAgICAgbGV0IHJlYWQ6IE1vZGVsO1xuICAgICAgLy8gICAgIHRyeSB7XG4gICAgICAvLyAgICAgICAgIHJlcG8gPSByZXBvRm9yTW9kZWwobW9kZWwpO1xuICAgICAgLy8gICAgICAgICBsb2cuZGVidWcoYHJlYWRpbmcgJHttb2RlbH0gd2l0aCAke3JlcG8ucGsgYXMgc3RyaW5nfSAke2lkfWApO1xuICAgICAgLy8gICAgICAgICByZWFkID0gYXdhaXQgcmVwby5yZWFkKGlkKTtcbiAgICAgIC8vICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAvLyAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIHJlYWQgJHttb2RlbH0gd2l0aCBpZCAke2lkfWAsIGUgYXMgRXJyb3IpO1xuICAgICAgLy8gICAgICAgICB0aHJvdyBlO1xuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBsb2cuaW5mbyhgcmVhZCAke21vZGVsfSB3aXRoIGlkICR7cmVhZFtyZXBvLnBrXX1gKTtcbiAgICAgIC8vICAgICByZXR1cm4gcmVhZDtcbiAgICAgIC8vIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRHluYW1pY01vZGVsQ29udHJvbGxlcjtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSb290KGZsYXZvdXI6IHN0cmluZyk6IER5bmFtaWNNb2R1bGUge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmZvclJvb3QpO1xuICAgIGxvZy5pbmZvKGBHZW5lcmF0aW5nIGNvbnRyb2xsZXJzIGZvciBmbGF2b3VyLi4uYCk7XG5cbiAgICBjb25zdCB0cmFja2VkTW9kZWxzID0gQWRhcHRlci5tb2RlbHMoZmxhdm91cik7XG4gICAgY29uc3QgY29udHJvbGxlcnMgPSB0cmFja2VkTW9kZWxzLm1hcCh0aGlzLnRvTW9kZWxDb250cm9sbGVyLmJpbmQodGhpcykpO1xuXG4gICAgbG9nLmluZm8oYEdlbmVyYXRlZCAke2NvbnRyb2xsZXJzLmxlbmd0aH0gY29udHJvbGxlcnNgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGU6IERlY2FmTW9kZWxNb2R1bGUsXG4gICAgICBjb250cm9sbGVycyxcbiAgICAgIHByb3ZpZGVyczogW1JlcG9GYWN0b3J5XSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -4,5 +4,5 @@ import { DecafModuleOptions } from "./types";
4
4
  * @publicApi
5
5
  */
6
6
  export declare class DecafModule {
7
- static forRoot(options: DecafModuleOptions): DynamicModule;
7
+ static forRootAsync(options: DecafModuleOptions): Promise<DynamicModule>;
8
8
  }
package/lib/esm/module.js CHANGED
@@ -7,14 +7,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var DecafModule_1;
8
8
  import { Module } from "@nestjs/common";
9
9
  import { DecafCoreModule } from "./core-module.js";
10
+ import { DecafModelModule } from "./model-module.js";
10
11
  /**
11
12
  * @publicApi
12
13
  */
13
14
  let DecafModule = DecafModule_1 = class DecafModule {
14
- static forRoot(options) {
15
+ static async forRootAsync(options) {
16
+ const { autoControllers } = options;
17
+ const adapter = await DecafCoreModule.createAdapter(options);
18
+ const flavour = adapter.flavour;
19
+ const imports = [DecafCoreModule.forRoot(options)];
20
+ if (autoControllers) {
21
+ imports.push(DecafModelModule.forRoot(flavour));
22
+ }
15
23
  return {
16
24
  module: DecafModule_1,
17
- imports: [DecafCoreModule.forRoot(options)],
25
+ imports: imports,
18
26
  };
19
27
  }
20
28
  };
@@ -22,4 +30,4 @@ DecafModule = DecafModule_1 = __decorate([
22
30
  Module({})
23
31
  ], DecafModule);
24
32
  export { DecafModule };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUFzQjtBQUVoRDs7R0FFRztBQUVJLElBQU0sV0FBVyxtQkFBakIsTUFBTSxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDeEMsT0FBTztZQUNMLE1BQU0sRUFBRSxhQUFXO1lBQ25CLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBUFksV0FBVztJQUR2QixNQUFNLENBQUMsRUFBRSxDQUFDO0dBQ0UsV0FBVyxDQU92QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNNb2R1bGUsIE1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZNb2R1bGVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IERlY2FmQ29yZU1vZHVsZSB9IGZyb20gXCIuL2NvcmUtbW9kdWxlXCI7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5ATW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlY2FmTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9uczogRGVjYWZNb2R1bGVPcHRpb25zKTogRHluYW1pY01vZHVsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZHVsZTogRGVjYWZNb2R1bGUsXG4gICAgICBpbXBvcnRzOiBbRGVjYWZDb3JlTW9kdWxlLmZvclJvb3Qob3B0aW9ucyldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBTyxFQUFtQyxNQUFNLEVBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUFzQjtBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsMEJBQXVCO0FBRWxEOztHQUVHO0FBRUksSUFBTSxXQUFXLG1CQUFqQixNQUFNLFdBQVc7SUFDdEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLE9BQTJCO1FBRTNCLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFaEMsTUFBTSxPQUFPLEdBT0csQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFbkQsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLGFBQVc7WUFDbkIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBM0JZLFdBQVc7SUFEdkIsTUFBTSxDQUFDLEVBQUUsQ0FBQztHQUNFLFdBQVcsQ0EyQnZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY01vZHVsZSwgRm9yd2FyZFJlZmVyZW5jZSwgTW9kdWxlLCBUeXBlIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBEZWNhZk1vZHVsZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRGVjYWZDb3JlTW9kdWxlIH0gZnJvbSBcIi4vY29yZS1tb2R1bGVcIjtcbmltcG9ydCB7IERlY2FmTW9kZWxNb2R1bGUgfSBmcm9tIFwiLi9tb2RlbC1tb2R1bGVcIjtcblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbkBNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgRGVjYWZNb2R1bGUge1xuICBzdGF0aWMgYXN5bmMgZm9yUm9vdEFzeW5jKFxuICAgIG9wdGlvbnM6IERlY2FmTW9kdWxlT3B0aW9uc1xuICApOiBQcm9taXNlPER5bmFtaWNNb2R1bGU+IHtcbiAgICBjb25zdCB7IGF1dG9Db250cm9sbGVycyB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCBEZWNhZkNvcmVNb2R1bGUuY3JlYXRlQWRhcHRlcihvcHRpb25zKTtcbiAgICBjb25zdCBmbGF2b3VyID0gYWRhcHRlci5mbGF2b3VyO1xuXG4gICAgY29uc3QgaW1wb3J0czpcbiAgICAgIHwgKFxuICAgICAgICAgIHwgRHluYW1pY01vZHVsZVxuICAgICAgICAgIHwgVHlwZTxhbnk+XG4gICAgICAgICAgfCBQcm9taXNlPER5bmFtaWNNb2R1bGU+XG4gICAgICAgICAgfCBGb3J3YXJkUmVmZXJlbmNlPGFueT5cbiAgICAgICAgKVtdXG4gICAgICB8IHVuZGVmaW5lZCA9IFtEZWNhZkNvcmVNb2R1bGUuZm9yUm9vdChvcHRpb25zKV07XG5cbiAgICBpZiAoYXV0b0NvbnRyb2xsZXJzKSB7XG4gICAgICBpbXBvcnRzLnB1c2goRGVjYWZNb2RlbE1vZHVsZS5mb3JSb290KGZsYXZvdXIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiBEZWNhZk1vZHVsZSxcbiAgICAgIGltcG9ydHM6IGltcG9ydHMsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -7,4 +7,5 @@ export type DecafModuleOptions<CONF = any, A extends Adapter<CONF, any, any, any
7
7
  adapter: Constructor<A>;
8
8
  conf: CONF;
9
9
  alias?: string;
10
+ autoControllers: boolean;
10
11
  };
package/lib/esm/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBEZWNhZk1vZHVsZU9wdGlvbnM8XG4gIENPTkYgPSBhbnksXG4gIEEgZXh0ZW5kcyBBZGFwdGVyPENPTkYsIGFueSwgYW55LCBhbnksIGFueT4gPSBBZGFwdGVyPENPTkYsIGFueSwgYW55Pixcbj4gPSB7XG4gIGFkYXB0ZXI6IENvbnN0cnVjdG9yPEE+O1xuICBjb25mOiBDT05GO1xuICBhbGlhcz86IHN0cmluZztcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBEZWNhZk1vZHVsZU9wdGlvbnM8XG4gIENPTkYgPSBhbnksXG4gIEEgZXh0ZW5kcyBBZGFwdGVyPENPTkYsIGFueSwgYW55LCBhbnksIGFueT4gPSBBZGFwdGVyPENPTkYsIGFueSwgYW55Pixcbj4gPSB7XG4gIGFkYXB0ZXI6IENvbnN0cnVjdG9yPEE+O1xuICBjb25mOiBDT05GO1xuICBhbGlhcz86IHN0cmluZztcbiAgYXV0b0NvbnRyb2xsZXJzOiBib29sZWFuO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ export declare function repoForModel(model: string): import("@decaf-ts/core").Repo<Model<false>, any, any, any, any>;
@@ -0,0 +1,11 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { InternalError } from "@decaf-ts/db-decorators";
3
+ import { Repository } from "@decaf-ts/core";
4
+ export function repoForModel(model) {
5
+ const m = Model.get(model);
6
+ if (!m)
7
+ throw new InternalError(`Failed to find repository for ${model}`);
8
+ const repo = Repository.forModel(m);
9
+ return repo;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3pDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsSUFBSSxDQUFDLENBQUM7UUFDTCxNQUFNLElBQUksYUFBYSxDQUFDLGlDQUFpQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtJbnRlcm5hbEVycm9yfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7UmVwb3NpdG9yeX0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvRm9yTW9kZWwobW9kZWw6IHN0cmluZykge1xuXHRjb25zdCBtID0gTW9kZWwuZ2V0KG1vZGVsKTtcblx0aWYgKCFtKVxuXHRcdHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZmluZCByZXBvc2l0b3J5IGZvciAke21vZGVsfWApXG5cdGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKG0pO1xuXHRyZXR1cm4gcmVwbztcbn0iXX0=
package/lib/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * @module ts-workspace
3
+ * @module for-nest
4
4
  * @description This module serves as the main entry point for the ts-workspace library. It aggregates and exports
5
5
  * functionality from various submodules and utilities within the project.
6
6
  *
@@ -37,16 +37,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.PACKAGE_NAME = exports.VERSION = void 0;
39
39
  const decoration_1 = require("@decaf-ts/decoration");
40
+ require("./decoration.cjs");
41
+ __exportStar(require("./decorators/index.cjs"), exports);
40
42
  __exportStar(require("./constants.cjs"), exports);
43
+ __exportStar(require("./decoration.cjs"), exports);
41
44
  __exportStar(require("./module.cjs"), exports);
45
+ __exportStar(require("./RepoFactory.cjs"), exports);
42
46
  __exportStar(require("./types.cjs"), exports);
47
+ __exportStar(require("./utils.cjs"), exports);
43
48
  /**
44
49
  * Represents the current version of the ts-workspace module.
45
50
  * The actual version number is replaced during the build process.
46
51
  * @constant
47
52
  * @type {string}
48
53
  */
49
- exports.VERSION = "0.0.1";
54
+ exports.VERSION = "0.0.2";
50
55
  exports.PACKAGE_NAME = "##PACKAGE_NAME##";
51
56
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBZ0Q7QUFFaEQsa0RBQTRCO0FBQzVCLCtDQUF5QjtBQUN6Qiw4Q0FBd0I7QUFFeEI7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDeEIsUUFBQSxZQUFZLEdBQUcsa0JBQWtCLENBQUM7QUFFL0MscUJBQVEsQ0FBQyxlQUFlLENBQUMsb0JBQVksRUFBRSxlQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSB0cy13b3Jrc3BhY2VcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIG1vZHVsZSBzZXJ2ZXMgYXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoZSB0cy13b3Jrc3BhY2UgbGlicmFyeS4gSXQgYWdncmVnYXRlcyBhbmQgZXhwb3J0c1xuICogZnVuY3Rpb25hbGl0eSBmcm9tIHZhcmlvdXMgc3VibW9kdWxlcyBhbmQgdXRpbGl0aWVzIHdpdGhpbiB0aGUgcHJvamVjdC5cbiAqXG4gKiBUaGUgbW9kdWxlIGluY2x1ZGVzOlxuICogMS4gVXRpbGl0eSBmdW5jdGlvbnMgYW5kIHR5cGVzIGZyb20gdGhlIFwiLi91dGlsc1wiIGRpcmVjdG9yeTpcbiAqICAgIC0gVGhlc2UgbGlrZWx5IGNvbnRhaW4gaGVscGVyIGZ1bmN0aW9ucywgY29tbW9uIHR5cGVzLCBhbmQgc2hhcmVkIGZ1bmN0aW9uYWxpdHkgdXNlZCB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LlxuICogICAgLSBNYXkgaW5jbHVkZSBvcGVyYXRpb25zIGZvciBkYXRhIG1hbmlwdWxhdGlvbiwgdHlwZSBjaGVja2luZywgb3Igb3RoZXIgZ2VuZXJhbC1wdXJwb3NlIHV0aWxpdGllcy5cbiAqXG4gKiAyLiBBIG5hbWVzcGFjZSBhbmQgcmVsYXRlZCB0eXBlcyBmcm9tIHRoZSBcIi4vbmFtZXNwYWNlXCIgZGlyZWN0b3J5OlxuICogICAgLSBUaGlzIGNvdWxkIGNvbnRhaW4gZG9tYWluLXNwZWNpZmljIGNvZGUgb3IgYSBjb2xsZWN0aW9uIG9mIHJlbGF0ZWQgZnVuY3Rpb25hbGl0eS5cbiAqICAgIC0gTWlnaHQgaW5jbHVkZSBpbnRlcmZhY2VzLCB0eXBlcywgb3IgY2xhc3NlcyB0aGF0IHJlcHJlc2VudCBjb3JlIGNvbmNlcHRzIGluIHRoZSBsaWJyYXJ5LlxuICpcbiAqIDMuIEEgVkVSU0lPTiBjb25zdGFudDpcbiAqICAgIC0gUmVwcmVzZW50cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUuXG4gKiAgICAtIFVzZWZ1bCBmb3IgdmVyc2lvbiBjaGVja2luZyBhbmQgY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy5cbiAqXG4gKiBUaGlzIHN0cnVjdHVyZSBwcm92aWRlcyBhIGNsZWFuIGFuZCBvcmdhbml6ZWQgZXhwb3J0IG9mIHRoZSBtb2R1bGUncyBmdW5jdGlvbmFsaXR5LCBhbGxvd2luZyBjb25zdW1lcnNcbiAqIHRvIGVhc2lseSBpbXBvcnQgYW5kIHVzZSBzcGVjaWZpYyBwYXJ0cyBvZiB0aGUgbGlicmFyeSBhcyBuZWVkZWQuXG4gKi9cblxuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSB0cy13b3Jrc3BhY2UgbW9kdWxlLlxuICogVGhlIGFjdHVhbCB2ZXJzaW9uIG51bWJlciBpcyByZXBsYWNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9IFwiIyNQQUNLQUdFX05BTUUjI1wiO1xuXG5NZXRhZGF0YS5yZWdpc3RlckxpYnJhcnkoUEFDS0FHRV9OQU1FLCBWRVJTSU9OKTtcbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBZ0Q7QUFDaEQsNEJBQXNCO0FBRXRCLHlEQUE2QjtBQUM3QixrREFBNEI7QUFDNUIsbURBQTZCO0FBQzdCLCtDQUF5QjtBQUN6QixvREFBOEI7QUFDOUIsOENBQXdCO0FBQ3hCLDhDQUF3QjtBQUV4Qjs7Ozs7R0FLRztBQUNVLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQztBQUN4QixRQUFBLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUUvQyxxQkFBUSxDQUFDLGVBQWUsQ0FBQyxvQkFBWSxFQUFFLGVBQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGZvci1uZXN0XG4gKiBAZGVzY3JpcHRpb24gVGhpcyBtb2R1bGUgc2VydmVzIGFzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciB0aGUgdHMtd29ya3NwYWNlIGxpYnJhcnkuIEl0IGFnZ3JlZ2F0ZXMgYW5kIGV4cG9ydHNcbiAqIGZ1bmN0aW9uYWxpdHkgZnJvbSB2YXJpb3VzIHN1Ym1vZHVsZXMgYW5kIHV0aWxpdGllcyB3aXRoaW4gdGhlIHByb2plY3QuXG4gKlxuICogVGhlIG1vZHVsZSBpbmNsdWRlczpcbiAqIDEuIFV0aWxpdHkgZnVuY3Rpb25zIGFuZCB0eXBlcyBmcm9tIHRoZSBcIi4vdXRpbHNcIiBkaXJlY3Rvcnk6XG4gKiAgICAtIFRoZXNlIGxpa2VseSBjb250YWluIGhlbHBlciBmdW5jdGlvbnMsIGNvbW1vbiB0eXBlcywgYW5kIHNoYXJlZCBmdW5jdGlvbmFsaXR5IHVzZWQgdGhyb3VnaG91dCB0aGUgcHJvamVjdC5cbiAqICAgIC0gTWF5IGluY2x1ZGUgb3BlcmF0aW9ucyBmb3IgZGF0YSBtYW5pcHVsYXRpb24sIHR5cGUgY2hlY2tpbmcsIG9yIG90aGVyIGdlbmVyYWwtcHVycG9zZSB1dGlsaXRpZXMuXG4gKlxuICogMi4gQSBuYW1lc3BhY2UgYW5kIHJlbGF0ZWQgdHlwZXMgZnJvbSB0aGUgXCIuL25hbWVzcGFjZVwiIGRpcmVjdG9yeTpcbiAqICAgIC0gVGhpcyBjb3VsZCBjb250YWluIGRvbWFpbi1zcGVjaWZpYyBjb2RlIG9yIGEgY29sbGVjdGlvbiBvZiByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuXG4gKiAgICAtIE1pZ2h0IGluY2x1ZGUgaW50ZXJmYWNlcywgdHlwZXMsIG9yIGNsYXNzZXMgdGhhdCByZXByZXNlbnQgY29yZSBjb25jZXB0cyBpbiB0aGUgbGlicmFyeS5cbiAqXG4gKiAzLiBBIFZFUlNJT04gY29uc3RhbnQ6XG4gKiAgICAtIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgbW9kdWxlLlxuICogICAgLSBVc2VmdWwgZm9yIHZlcnNpb24gY2hlY2tpbmcgYW5kIGNvbXBhdGliaWxpdHkgcHVycG9zZXMuXG4gKlxuICogVGhpcyBzdHJ1Y3R1cmUgcHJvdmlkZXMgYSBjbGVhbiBhbmQgb3JnYW5pemVkIGV4cG9ydCBvZiB0aGUgbW9kdWxlJ3MgZnVuY3Rpb25hbGl0eSwgYWxsb3dpbmcgY29uc3VtZXJzXG4gKiB0byBlYXNpbHkgaW1wb3J0IGFuZCB1c2Ugc3BlY2lmaWMgcGFydHMgb2YgdGhlIGxpYnJhcnkgYXMgbmVlZGVkLlxuICovXG5cbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgXCIuL2RlY29yYXRpb25cIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlcG9GYWN0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIHRzLXdvcmtzcGFjZSBtb2R1bGUuXG4gKiBUaGUgYWN0dWFsIHZlcnNpb24gbnVtYmVyIGlzIHJlcGxhY2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9OQU1FID0gXCIjI1BBQ0tBR0VfTkFNRSMjXCI7XG5cbk1ldGFkYXRhLnJlZ2lzdGVyTGlicmFyeShQQUNLQUdFX05BTUUsIFZFUlNJT04pO1xuIl19
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @module ts-workspace
2
+ * @module for-nest
3
3
  * @description This module serves as the main entry point for the ts-workspace library. It aggregates and exports
4
4
  * functionality from various submodules and utilities within the project.
5
5
  *
@@ -19,14 +19,19 @@
19
19
  * This structure provides a clean and organized export of the module's functionality, allowing consumers
20
20
  * to easily import and use specific parts of the library as needed.
21
21
  */
22
+ import "./decoration";
23
+ export * from "./decorators";
22
24
  export * from "./constants";
25
+ export * from "./decoration";
23
26
  export * from "./module";
27
+ export * from "./RepoFactory";
24
28
  export * from "./types";
29
+ export * from "./utils";
25
30
  /**
26
31
  * Represents the current version of the ts-workspace module.
27
32
  * The actual version number is replaced during the build process.
28
33
  * @constant
29
34
  * @type {string}
30
35
  */
31
- export declare const VERSION = "0.0.1";
36
+ export declare const VERSION = "0.0.2";
32
37
  export declare const PACKAGE_NAME = "##PACKAGE_NAME##";
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var DecafModelModule_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.DecafModelModule = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const swagger_1 = require("@nestjs/swagger");
19
+ const core_1 = require("@decaf-ts/core");
20
+ const logging_1 = require("@decaf-ts/logging");
21
+ const utils_1 = require("./utils.cjs");
22
+ const RepoFactory_1 = require("./RepoFactory.cjs");
23
+ const common_2 = require("@nestjs/common");
24
+ let DecafModelModule = class DecafModelModule {
25
+ static { DecafModelModule_1 = this; }
26
+ static get log() {
27
+ if (!this._logger)
28
+ this._logger = logging_1.Logging.for(DecafModelModule_1);
29
+ return this._logger;
30
+ }
31
+ static toModelController(modelClass) {
32
+ const log = this.log.for(this.toModelController);
33
+ log.debug(`Creating model controller... ${modelClass.name}`);
34
+ const modelName = (0, logging_1.toKebabCase)(core_1.Repository.table(modelClass));
35
+ const route = modelName;
36
+ let DynamicModelController = class DynamicModelController extends logging_1.LoggedClass {
37
+ constructor(repoFactory) {
38
+ super();
39
+ this.repoFactory = repoFactory;
40
+ try {
41
+ this.repo = this.repoFactory.for(modelClass.name);
42
+ }
43
+ catch (e) {
44
+ log.error(`Failed to get repository for ${modelClass.name}`, e);
45
+ }
46
+ }
47
+ async create(data) {
48
+ const log = this.log.for(this.create);
49
+ log.verbose(`creating new ${modelName}`);
50
+ const r = (0, utils_1.repoForModel)("Account");
51
+ const created = await r.create(data);
52
+ log.info(`created new ${modelName} with id ${created[r.pk]}`);
53
+ return created;
54
+ }
55
+ async read(id) {
56
+ const log = this.log.for(this.read);
57
+ log.debug(`reading ${modelName} with ${this.repo.pk} ${id}`);
58
+ const read = await this.repo.read(id);
59
+ log.info(`read ${modelName} with id ${read[this.repo.pk]}`);
60
+ return read;
61
+ }
62
+ };
63
+ __decorate([
64
+ (0, common_1.Post)(),
65
+ (0, swagger_1.ApiOperation)({ summary: `Create a new ${modelName}.` }),
66
+ (0, swagger_1.ApiBody)({
67
+ description: `Payload for ${modelName}`,
68
+ schema: { $ref: (0, swagger_1.getSchemaPath)(modelClass) },
69
+ }),
70
+ (0, swagger_1.ApiCreatedResponse)({ description: `${modelName} created successfully.` }),
71
+ (0, swagger_1.ApiBadRequestResponse)({ description: "Payload validation failed." }),
72
+ (0, swagger_1.ApiUnprocessableEntityResponse)({
73
+ description: "Repository rejected the provided payload.",
74
+ }),
75
+ __param(0, (0, common_1.Body)()),
76
+ __metadata("design:type", Function),
77
+ __metadata("design:paramtypes", [Object]),
78
+ __metadata("design:returntype", Promise)
79
+ ], DynamicModelController.prototype, "create", null);
80
+ __decorate([
81
+ (0, common_1.Get)(":id"),
82
+ (0, swagger_1.ApiOperation)({ summary: `Retrieve a ${modelName} by id.` }),
83
+ (0, swagger_1.ApiParam)({
84
+ name: "id",
85
+ description: "Primary key",
86
+ example: "1234-5678",
87
+ }),
88
+ (0, swagger_1.ApiOkResponse)({ description: `${modelName} retrieved successfully.` }),
89
+ (0, swagger_1.ApiNotFoundResponse)({
90
+ description: "No record matches the provided identifier.",
91
+ }),
92
+ __param(0, (0, common_1.Param)("id")),
93
+ __metadata("design:type", Function),
94
+ __metadata("design:paramtypes", [String]),
95
+ __metadata("design:returntype", Promise)
96
+ ], DynamicModelController.prototype, "read", null);
97
+ DynamicModelController = __decorate([
98
+ (0, common_1.Controller)(route),
99
+ (0, swagger_1.ApiTags)(modelName),
100
+ (0, swagger_1.ApiExtraModels)(modelClass),
101
+ __metadata("design:paramtypes", [RepoFactory_1.RepoFactory])
102
+ ], DynamicModelController);
103
+ return DynamicModelController;
104
+ }
105
+ static forRoot(flavour) {
106
+ const log = this.log.for(this.forRoot);
107
+ log.info(`Generating controllers for flavour...`);
108
+ const trackedModels = core_1.Adapter.models(flavour);
109
+ const controllers = trackedModels.map(this.toModelController.bind(this));
110
+ log.info(`Generated ${controllers.length} controllers`);
111
+ return {
112
+ module: DecafModelModule_1,
113
+ controllers,
114
+ providers: [RepoFactory_1.RepoFactory],
115
+ };
116
+ }
117
+ };
118
+ exports.DecafModelModule = DecafModelModule;
119
+ exports.DecafModelModule = DecafModelModule = DecafModelModule_1 = __decorate([
120
+ (0, common_2.Module)({})
121
+ ], DecafModelModule);
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVsLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQW9FO0FBQ3BFLDZDQVl5QjtBQUN6Qix5Q0FBcUQ7QUFFckQsK0NBQThFO0FBQzlFLHVDQUF1QztBQUN2QyxtREFBNEM7QUFDNUMsMkNBQXVEO0FBR2hELElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCOztJQUdqQixNQUFNLEtBQUssR0FBRztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFnQixDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFYyxBQUFQLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDOUIsVUFBaUM7UUFFakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBQSxxQkFBVyxFQUFDLGlCQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXhCLElBR00sc0JBQXNCLEdBSDVCLE1BR00sc0JBQXVCLFNBQVEscUJBQVc7WUFHOUMsWUFBNkIsV0FBd0I7Z0JBQ25ELEtBQUssRUFBRSxDQUFDO2dCQURtQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtnQkFFbkQsSUFBSSxDQUFDO29CQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFD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QUFLLENBQUM7WUFDakIsSUFBQSxpQkFBTyxFQUFDLFNBQVMsQ0FBQztZQUNsQixJQUFBLHdCQUFjLEVBQUMsVUFBVSxDQUFDOzZDQUlpQix5QkFBVztXQUhqRCxzQkFBc0IsQ0F3RzNCO1FBRUQsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFlO1FBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFFbEQsTUFBTSxhQUFhLEdBQUcsY0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV6RSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsV0FBVyxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7UUFFeEQsT0FBTztZQUNMLE1BQU0sRUFBRSxrQkFBZ0I7WUFDeEIsV0FBVztZQUNYLFNBQVMsRUFBRSxDQUFDLHlCQUFXLENBQUM7U0FDekIsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBL0lZLDRDQUFnQjsyQkFBaEIsZ0JBQWdCO0lBRDVCLElBQUEsZUFBTSxFQUFDLEVBQUUsQ0FBQztHQUNFLGdCQUFnQixDQStJNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb2R5LCBDb250cm9sbGVyLCBHZXQsIFBhcmFtLCBQb3N0IH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQge1xuICBBcGlCYWRSZXF1ZXN0UmVzcG9uc2UsXG4gIEFwaUJvZHksXG4gIEFwaUNyZWF0ZWRSZXNwb25zZSxcbiAgQXBpRXh0cmFNb2RlbHMsXG4gIEFwaU5vdEZvdW5kUmVzcG9uc2UsXG4gIEFwaU9rUmVzcG9uc2UsXG4gIEFwaU9wZXJhdGlvbixcbiAgQXBpUGFyYW0sXG4gIEFwaVRhZ3MsXG4gIEFwaVVucHJvY2Vzc2FibGVFbnRpdHlSZXNwb25zZSxcbiAgZ2V0U2NoZW1hUGF0aCxcbn0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuaW1wb3J0IHsgQWRhcHRlciwgUmVwb3NpdG9yeSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwsIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBMb2dnZWRDbGFzcywgTG9nZ2VyLCBMb2dnaW5nLCB0b0tlYmFiQ2FzZSB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgcmVwb0Zvck1vZGVsIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IFJlcG9GYWN0b3J5IH0gZnJvbSBcIi4vUmVwb0ZhY3RvcnlcIjtcbmltcG9ydCB7IER5bmFtaWNNb2R1bGUsIE1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuXG5ATW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlY2FmTW9kZWxNb2R1bGUge1xuICBwcml2YXRlIHN0YXRpYyBfbG9nZ2VyOiBMb2dnZXI7XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBnZXQgbG9nKCk6IExvZ2dlciB7XG4gICAgaWYgKCF0aGlzLl9sb2dnZXIpIHRoaXMuX2xvZ2dlciA9IExvZ2dpbmcuZm9yKERlY2FmTW9kZWxNb2R1bGUpO1xuICAgIHJldHVybiB0aGlzLl9sb2dnZXI7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0b01vZGVsQ29udHJvbGxlcjxUIGV4dGVuZHMgTW9kZWw8YW55Pj4oXG4gICAgbW9kZWxDbGFzczogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+XG4gICkge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLnRvTW9kZWxDb250cm9sbGVyKTtcbiAgICBsb2cuZGVidWcoYENyZWF0aW5nIG1vZGVsIGNvbnRyb2xsZXIuLi4gJHttb2RlbENsYXNzLm5hbWV9YCk7XG4gICAgY29uc3QgbW9kZWxOYW1lID0gdG9LZWJhYkNhc2UoUmVwb3NpdG9yeS50YWJsZShtb2RlbENsYXNzKSk7XG4gICAgY29uc3Qgcm91dGUgPSBtb2RlbE5hbWU7XG5cbiAgICBAQ29udHJvbGxlcihyb3V0ZSlcbiAgICBAQXBpVGFncyhtb2RlbE5hbWUpXG4gICAgQEFwaUV4dHJhTW9kZWxzKG1vZGVsQ2xhc3MpXG4gICAgY2xhc3MgRHluYW1pY01vZGVsQ29udHJvbGxlciBleHRlbmRzIExvZ2dlZENsYXNzIHtcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwbzogYW55OyAvLz0gdGhpcy5yZXBvRmFjdG9yeS5mb3IobW9kZWxDbGFzcy5uYW1lKTtcblxuICAgICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXBvRmFjdG9yeTogUmVwb0ZhY3RvcnkpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnJlcG8gPSB0aGlzLnJlcG9GYWN0b3J5LmZvcihtb2RlbENsYXNzLm5hbWUpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgYEZhaWxlZCB0byBnZXQgcmVwb3NpdG9yeSBmb3IgJHttb2RlbENsYXNzLm5hbWV9YCxcbiAgICAgICAgICAgIGUgYXMgRXJyb3JcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBQb3N0KClcbiAgICAgIEBBcGlPcGVyYXRpb24oeyBzdW1tYXJ5OiBgQ3JlYXRlIGEgbmV3ICR7bW9kZWxOYW1lfS5gIH0pXG4gICAgICBAQXBpQm9keSh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGF5bG9hZCBmb3IgJHttb2RlbE5hbWV9YCxcbiAgICAgICAgc2NoZW1hOiB7ICRyZWY6IGdldFNjaGVtYVBhdGgobW9kZWxDbGFzcykgfSxcbiAgICAgIH0pXG4gICAgICBAQXBpQ3JlYXRlZFJlc3BvbnNlKHsgZGVzY3JpcHRpb246IGAke21vZGVsTmFtZX0gY3JlYXRlZCBzdWNjZXNzZnVsbHkuYCB9KVxuICAgICAgQEFwaUJhZFJlcXVlc3RSZXNwb25zZSh7IGRlc2NyaXB0aW9uOiBcIlBheWxvYWQgdmFsaWRhdGlvbiBmYWlsZWQuXCIgfSlcbiAgICAgIEBBcGlVbnByb2Nlc3NhYmxlRW50aXR5UmVzcG9uc2Uoe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJSZXBvc2l0b3J5IHJlamVjdGVkIHRoZSBwcm92aWRlZCBwYXlsb2FkLlwiLFxuICAgICAgfSlcbiAgICAgIGFzeW5jIGNyZWF0ZShAQm9keSgpIGRhdGE6IFQpOiBQcm9taXNlPE1vZGVsPGFueT4+IHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGNyZWF0aW5nIG5ldyAke21vZGVsTmFtZX1gKTtcbiAgICAgICAgY29uc3QgciA9IHJlcG9Gb3JNb2RlbChcIkFjY291bnRcIik7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCByLmNyZWF0ZShkYXRhKTtcbiAgICAgICAgbG9nLmluZm8oYGNyZWF0ZWQgbmV3ICR7bW9kZWxOYW1lfSB3aXRoIGlkICR7Y3JlYXRlZFtyLnBrXX1gKTtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgICB9XG5cbiAgICAgIEBHZXQoXCI6aWRcIilcbiAgICAgIEBBcGlPcGVyYXRpb24oeyBzdW1tYXJ5OiBgUmV0cmlldmUgYSAke21vZGVsTmFtZX0gYnkgaWQuYCB9KVxuICAgICAgQEFwaVBhcmFtKHtcbiAgICAgICAgbmFtZTogXCJpZFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmltYXJ5IGtleVwiLFxuICAgICAgICBleGFtcGxlOiBcIjEyMzQtNTY3OFwiLFxuICAgICAgfSlcbiAgICAgIEBBcGlPa1Jlc3BvbnNlKHsgZGVzY3JpcHRpb246IGAke21vZGVsTmFtZX0gcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS5gIH0pXG4gICAgICBAQXBpTm90Rm91bmRSZXNwb25zZSh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIk5vIHJlY29yZCBtYXRjaGVzIHRoZSBwcm92aWRlZCBpZGVudGlmaWVyLlwiLFxuICAgICAgfSlcbiAgICAgIGFzeW5jIHJlYWQoQFBhcmFtKFwiaWRcIikgaWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5yZWFkKTtcbiAgICAgICAgbG9nLmRlYnVnKGByZWFkaW5nICR7bW9kZWxOYW1lfSB3aXRoICR7dGhpcy5yZXBvLnBrIGFzIHN0cmluZ30gJHtpZH1gKTtcbiAgICAgICAgY29uc3QgcmVhZCA9IGF3YWl0IHRoaXMucmVwby5yZWFkKGlkKTtcbiAgICAgICAgbG9nLmluZm8oYHJlYWQgJHttb2RlbE5hbWV9IHdpdGggaWQgJHtyZWFkW3RoaXMucmVwby5wa119YCk7XG4gICAgICAgIHJldHVybiByZWFkO1xuICAgICAgfVxuXG4gICAgICAvLyBAUG9zdCgpXG4gICAgICAvLyBAQXBpT3BlcmF0aW9uKHtzdW1tYXJ5OiBcIkNyZWF0ZSBhIG5ldyByZWNvcmQgZm9yIHRoZSBnaXZlbiBtb2RlbC5cIn0pXG4gICAgICAvLyBAQXBpQ3JlYXRlZFJlc3BvbnNlKHtkZXNjcmlwdGlvbjogXCJSZWNvcmQgY3JlYXRlZCBzdWNjZXNzZnVsbHkuXCJ9KVxuICAgICAgLy8gQEFwaUJhZFJlcXVlc3RSZXNwb25zZSh7ZGVzY3JpcHRpb246IFwiUGF5bG9hZCB2YWxpZGF0aW9uIGZhaWxlZC5cIn0pXG4gICAgICAvLyBAQXBpVW5wcm9jZXNzYWJsZUVudGl0eVJlc3BvbnNlKHtkZXNjcmlwdGlvbjogXCJSZXBvc2l0b3J5IHJlamVjdGVkIHRoZSBwcm92aWRlZCBwYXlsb2FkLlwifSlcbiAgICAgIC8vIGFzeW5jIGNyZWF0ZShAUGFyYW0oXCJtb2RlbFwiKSBtb2RlbDogc3RyaW5nLCBAQm9keSgpIGRhdGE6IGFueSkge1xuICAgICAgLy8gICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgICAvLyAgICAgbG9nLnZlcmJvc2UoYGNyZWF0aW5nIG5ldyAke21vZGVsfWApO1xuICAgICAgLy8gICAgIGxldCByZXBvOiBSZXBvPE1vZGVsPjtcbiAgICAgIC8vICAgICBsZXQgY3JlYXRlZDogTW9kZWw7XG4gICAgICAvLyAgICAgdHJ5IHtcbiAgICAgIC8vICAgICAgICAgcmVwbyA9IHJlcG9Gb3JNb2RlbChtb2RlbCk7XG4gICAgICAvLyAgICAgICAgIGNyZWF0ZWQgPSBhd2FpdCByZXBvLmNyZWF0ZShkYXRhKTtcbiAgICAgIC8vICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAvLyAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBuZXcgJHttb2RlbH1gLCBlIGFzIEVycm9yKTtcbiAgICAgIC8vICAgICAgICAgdGhyb3cgZTtcbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgICAgbG9nLmluZm8oYGNyZWF0ZWQgbmV3ICR7bW9kZWx9IHdpdGggaWQgJHtjcmVhdGVkW3JlcG8ucGtdfWApO1xuICAgICAgLy8gICAgIHJldHVybiBjcmVhdGVkO1xuICAgICAgLy8gfVxuXG4gICAgICAvLyBAR2V0KFwiOmlkXCIpXG4gICAgICAvLyBAQXBpT3BlcmF0aW9uKHtzdW1tYXJ5OiBcIlJldHJpZXZlIGEgc2luZ2xlIHJlY29yZCBieSBpZC5cIn0pXG4gICAgICAvLyBAQXBpUGFyYW0oe1xuICAgICAgLy8gICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgIC8vICAgICAvLyBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIG1vZGVsIHJlcG9zaXRvcnkgdG8gdGFyZ2V0LicgKyBgXFxuJHttb2RlbExpc3QubWFwKChtOiBzdHJpbmcsIGk6IG51bWJlcikgPT4gYCR7bX0gLSAke01ldGFkYXRhLmRlc2NyaXB0aW9uKHRyYWNrZWRNb2RlbHNbaV0pfWApLmpvaW4oJ1xcbicpfWAsXG4gICAgICAvLyAgICAgZXhhbXBsZTogXCJhZ2VudFwiLFxuICAgICAgLy8gfSlcbiAgICAgIC8vIEBBcGlQYXJhbSh7XG4gICAgICAvLyAgICAgbmFtZTogXCJpZFwiLFxuICAgICAgLy8gICAgIGRlc2NyaXB0aW9uOiBcIlByaW1hcnkga2V5IHZhbHVlIHVzZWQgdG8gbG9hZCB0aGUgcmVjb3JkLlwiLFxuICAgICAgLy8gICAgIGV4YW1wbGU6IFwiMTIzNC01Njc4XCIsXG4gICAgICAvLyB9KVxuICAgICAgLy8gQEFwaU9rUmVzcG9uc2Uoe2Rlc2NyaXB0aW9uOiBcIlJlY29yZCByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LlwifSlcbiAgICAgIC8vIEBBcGlOb3RGb3VuZFJlc3BvbnNlKHtkZXNjcmlwdGlvbjogXCJObyByZWNvcmQgbWF0Y2hlcyB0aGUgcHJvdmlkZWQgaWRlbnRpZmllci5cIn0pXG4gICAgICAvLyBhc3luYyByZWFkKEBQYXJhbShcIm1vZGVsXCIpIG1vZGVsOiBzdHJpbmcsIEBQYXJhbShcImlkXCIpIGlkOiBzdHJpbmcpIHtcbiAgICAgIC8vICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5yZWFkKTtcbiAgICAgIC8vICAgICBsZXQgcmVwbzogUmVwbzxNb2RlbD47XG4gICAgICAvLyAgICAgbGV0IHJlYWQ6IE1vZGVsO1xuICAgICAgLy8gICAgIHRyeSB7XG4gICAgICAvLyAgICAgICAgIHJlcG8gPSByZXBvRm9yTW9kZWwobW9kZWwpO1xuICAgICAgLy8gICAgICAgICBsb2cuZGVidWcoYHJlYWRpbmcgJHttb2RlbH0gd2l0aCAke3JlcG8ucGsgYXMgc3RyaW5nfSAke2lkfWApO1xuICAgICAgLy8gICAgICAgICByZWFkID0gYXdhaXQgcmVwby5yZWFkKGlkKTtcbiAgICAgIC8vICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAvLyAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIHJlYWQgJHttb2RlbH0gd2l0aCBpZCAke2lkfWAsIGUgYXMgRXJyb3IpO1xuICAgICAgLy8gICAgICAgICB0aHJvdyBlO1xuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBsb2cuaW5mbyhgcmVhZCAke21vZGVsfSB3aXRoIGlkICR7cmVhZFtyZXBvLnBrXX1gKTtcbiAgICAgIC8vICAgICByZXR1cm4gcmVhZDtcbiAgICAgIC8vIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRHluYW1pY01vZGVsQ29udHJvbGxlcjtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSb290KGZsYXZvdXI6IHN0cmluZyk6IER5bmFtaWNNb2R1bGUge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmZvclJvb3QpO1xuICAgIGxvZy5pbmZvKGBHZW5lcmF0aW5nIGNvbnRyb2xsZXJzIGZvciBmbGF2b3VyLi4uYCk7XG5cbiAgICBjb25zdCB0cmFja2VkTW9kZWxzID0gQWRhcHRlci5tb2RlbHMoZmxhdm91cik7XG4gICAgY29uc3QgY29udHJvbGxlcnMgPSB0cmFja2VkTW9kZWxzLm1hcCh0aGlzLnRvTW9kZWxDb250cm9sbGVyLmJpbmQodGhpcykpO1xuXG4gICAgbG9nLmluZm8oYEdlbmVyYXRlZCAke2NvbnRyb2xsZXJzLmxlbmd0aH0gY29udHJvbGxlcnNgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGU6IERlY2FmTW9kZWxNb2R1bGUsXG4gICAgICBjb250cm9sbGVycyxcbiAgICAgIHByb3ZpZGVyczogW1JlcG9GYWN0b3J5XSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { Logger } from "@decaf-ts/logging";
2
+ import { DynamicModule } from "@nestjs/common";
3
+ export declare class DecafModelModule {
4
+ private static _logger;
5
+ protected static get log(): Logger;
6
+ private static toModelController;
7
+ static forRoot(flavour: string): DynamicModule;
8
+ }
package/lib/module.cjs CHANGED
@@ -10,14 +10,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.DecafModule = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const core_module_1 = require("./core-module.cjs");
13
+ const model_module_1 = require("./model-module.cjs");
13
14
  /**
14
15
  * @publicApi
15
16
  */
16
17
  let DecafModule = DecafModule_1 = class DecafModule {
17
- static forRoot(options) {
18
+ static async forRootAsync(options) {
19
+ const { autoControllers } = options;
20
+ const adapter = await core_module_1.DecafCoreModule.createAdapter(options);
21
+ const flavour = adapter.flavour;
22
+ const imports = [core_module_1.DecafCoreModule.forRoot(options)];
23
+ if (autoControllers) {
24
+ imports.push(model_module_1.DecafModelModule.forRoot(flavour));
25
+ }
18
26
  return {
19
27
  module: DecafModule_1,
20
- imports: [core_module_1.DecafCoreModule.forRoot(options)],
28
+ imports: imports,
21
29
  };
22
30
  }
23
31
  };
@@ -25,4 +33,4 @@ exports.DecafModule = DecafModule;
25
33
  exports.DecafModule = DecafModule = DecafModule_1 = __decorate([
26
34
  (0, common_1.Module)({})
27
35
  ], DecafModule);
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsMkNBQXVEO0FBRXZELG1EQUFnRDtBQUVoRDs7R0FFRztBQUVJLElBQU0sV0FBVyxtQkFBakIsTUFBTSxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDeEMsT0FBTztZQUNMLE1BQU0sRUFBRSxhQUFXO1lBQ25CLE9BQU8sRUFBRSxDQUFDLDZCQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQVBZLGtDQUFXO3NCQUFYLFdBQVc7SUFEdkIsSUFBQSxlQUFNLEVBQUMsRUFBRSxDQUFDO0dBQ0UsV0FBVyxDQU92QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNNb2R1bGUsIE1vZHVsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRGVjYWZNb2R1bGVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IERlY2FmQ29yZU1vZHVsZSB9IGZyb20gXCIuL2NvcmUtbW9kdWxlXCI7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5ATW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlY2FmTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9uczogRGVjYWZNb2R1bGVPcHRpb25zKTogRHluYW1pY01vZHVsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZHVsZTogRGVjYWZNb2R1bGUsXG4gICAgICBpbXBvcnRzOiBbRGVjYWZDb3JlTW9kdWxlLmZvclJvb3Qob3B0aW9ucyldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsMkNBQStFO0FBRS9FLG1EQUFnRDtBQUNoRCxxREFBa0Q7QUFFbEQ7O0dBRUc7QUFFSSxJQUFNLFdBQVcsbUJBQWpCLE1BQU0sV0FBVztJQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDdkIsT0FBMkI7UUFFM0IsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLDZCQUFlLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFaEMsTUFBTSxPQUFPLEdBT0csQ0FBQyw2QkFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRW5ELElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQywrQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTztZQUNMLE1BQU0sRUFBRSxhQUFXO1lBQ25CLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQTNCWSxrQ0FBVztzQkFBWCxXQUFXO0lBRHZCLElBQUEsZUFBTSxFQUFDLEVBQUUsQ0FBQztHQUNFLFdBQVcsQ0EyQnZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY01vZHVsZSwgRm9yd2FyZFJlZmVyZW5jZSwgTW9kdWxlLCBUeXBlIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBEZWNhZk1vZHVsZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRGVjYWZDb3JlTW9kdWxlIH0gZnJvbSBcIi4vY29yZS1tb2R1bGVcIjtcbmltcG9ydCB7IERlY2FmTW9kZWxNb2R1bGUgfSBmcm9tIFwiLi9tb2RlbC1tb2R1bGVcIjtcblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbkBNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgRGVjYWZNb2R1bGUge1xuICBzdGF0aWMgYXN5bmMgZm9yUm9vdEFzeW5jKFxuICAgIG9wdGlvbnM6IERlY2FmTW9kdWxlT3B0aW9uc1xuICApOiBQcm9taXNlPER5bmFtaWNNb2R1bGU+IHtcbiAgICBjb25zdCB7IGF1dG9Db250cm9sbGVycyB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGFkYXB0ZXIgPSBhd2FpdCBEZWNhZkNvcmVNb2R1bGUuY3JlYXRlQWRhcHRlcihvcHRpb25zKTtcbiAgICBjb25zdCBmbGF2b3VyID0gYWRhcHRlci5mbGF2b3VyO1xuXG4gICAgY29uc3QgaW1wb3J0czpcbiAgICAgIHwgKFxuICAgICAgICAgIHwgRHluYW1pY01vZHVsZVxuICAgICAgICAgIHwgVHlwZTxhbnk+XG4gICAgICAgICAgfCBQcm9taXNlPER5bmFtaWNNb2R1bGU+XG4gICAgICAgICAgfCBGb3J3YXJkUmVmZXJlbmNlPGFueT5cbiAgICAgICAgKVtdXG4gICAgICB8IHVuZGVmaW5lZCA9IFtEZWNhZkNvcmVNb2R1bGUuZm9yUm9vdChvcHRpb25zKV07XG5cbiAgICBpZiAoYXV0b0NvbnRyb2xsZXJzKSB7XG4gICAgICBpbXBvcnRzLnB1c2goRGVjYWZNb2RlbE1vZHVsZS5mb3JSb290KGZsYXZvdXIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiBEZWNhZk1vZHVsZSxcbiAgICAgIGltcG9ydHM6IGltcG9ydHMsXG4gICAgfTtcbiAgfVxufVxuIl19
package/lib/module.d.ts CHANGED
@@ -4,5 +4,5 @@ import { DecafModuleOptions } from "./types";
4
4
  * @publicApi
5
5
  */
6
6
  export declare class DecafModule {
7
- static forRoot(options: DecafModuleOptions): DynamicModule;
7
+ static forRootAsync(options: DecafModuleOptions): Promise<DynamicModule>;
8
8
  }
package/lib/types.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBEZWNhZk1vZHVsZU9wdGlvbnM8XG4gIENPTkYgPSBhbnksXG4gIEEgZXh0ZW5kcyBBZGFwdGVyPENPTkYsIGFueSwgYW55LCBhbnksIGFueT4gPSBBZGFwdGVyPENPTkYsIGFueSwgYW55Pixcbj4gPSB7XG4gIGFkYXB0ZXI6IENvbnN0cnVjdG9yPEE+O1xuICBjb25mOiBDT05GO1xuICBhbGlhcz86IHN0cmluZztcbn07XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBEZWNhZk1vZHVsZU9wdGlvbnM8XG4gIENPTkYgPSBhbnksXG4gIEEgZXh0ZW5kcyBBZGFwdGVyPENPTkYsIGFueSwgYW55LCBhbnksIGFueT4gPSBBZGFwdGVyPENPTkYsIGFueSwgYW55Pixcbj4gPSB7XG4gIGFkYXB0ZXI6IENvbnN0cnVjdG9yPEE+O1xuICBjb25mOiBDT05GO1xuICBhbGlhcz86IHN0cmluZztcbiAgYXV0b0NvbnRyb2xsZXJzOiBib29sZWFuO1xufTtcbiJdfQ==
package/lib/types.d.ts CHANGED
@@ -7,4 +7,5 @@ export type DecafModuleOptions<CONF = any, A extends Adapter<CONF, any, any, any
7
7
  adapter: Constructor<A>;
8
8
  conf: CONF;
9
9
  alias?: string;
10
+ autoControllers: boolean;
10
11
  };
package/lib/utils.cjs ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.repoForModel = repoForModel;
4
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
5
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
6
+ const core_1 = require("@decaf-ts/core");
7
+ function repoForModel(model) {
8
+ const m = decorator_validation_1.Model.get(model);
9
+ if (!m)
10
+ throw new db_decorators_1.InternalError(`Failed to find repository for ${model}`);
11
+ const repo = core_1.Repository.forModel(m);
12
+ return repo;
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxvQ0FNQztBQVZELHlFQUFxRDtBQUNyRCwyREFBc0Q7QUFDdEQseUNBQTBDO0FBRTFDLFNBQWdCLFlBQVksQ0FBQyxLQUFhO0lBQ3pDLE1BQU0sQ0FBQyxHQUFHLDRCQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLElBQUksQ0FBQyxDQUFDO1FBQ0wsTUFBTSxJQUFJLDZCQUFhLENBQUMsaUNBQWlDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDbEUsTUFBTSxJQUFJLEdBQUcsaUJBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtJbnRlcm5hbEVycm9yfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7UmVwb3NpdG9yeX0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvRm9yTW9kZWwobW9kZWw6IHN0cmluZykge1xuXHRjb25zdCBtID0gTW9kZWwuZ2V0KG1vZGVsKTtcblx0aWYgKCFtKVxuXHRcdHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZmluZCByZXBvc2l0b3J5IGZvciAke21vZGVsfWApXG5cdGNvbnN0IHJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKG0pO1xuXHRyZXR1cm4gcmVwbztcbn0iXX0=
package/lib/utils.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ export declare function repoForModel(model: string): import("@decaf-ts/core").Repo<Model<false>, any, any, any, any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -99,6 +99,7 @@
99
99
  "@rollup/plugin-typescript": "^12.1.2",
100
100
  "@stylistic/eslint-plugin": "^4.2.0",
101
101
  "@types/jest": "^29.5.14",
102
+ "@types/lodash": "^4.17.20",
102
103
  "clean-publish": "^5.1.0",
103
104
  "dpdm": "^3.14.0",
104
105
  "eslint": "^9.25.1",
@@ -132,6 +133,7 @@
132
133
  "@decaf-ts/logging": "latest",
133
134
  "@decaf-ts/reflection": "latest",
134
135
  "@decaf-ts/transactional-decorators": "latest",
135
- "@nestjs/common": "^11.0.1"
136
+ "@nestjs/common": "^11.0.1",
137
+ "lodash": "^4.17.21"
136
138
  }
137
139
  }