@carlonicora/nestjs-neo4jsonapi 1.81.0 → 1.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.js +38 -0
- package/dist/scripts/generate-module/__tests__/dto-imports.spec.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/entity.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/entity.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/entity.spec.js +58 -0
- package/dist/scripts/generate-module/__tests__/entity.spec.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/fixtures.d.ts +3 -0
- package/dist/scripts/generate-module/__tests__/fixtures.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/fixtures.js +32 -0
- package/dist/scripts/generate-module/__tests__/fixtures.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/plumbing.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/plumbing.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/plumbing.spec.js +19 -0
- package/dist/scripts/generate-module/__tests__/plumbing.spec.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.js +84 -0
- package/dist/scripts/generate-module/__tests__/scope-detector.spec.js.map +1 -0
- package/dist/scripts/generate-module/__tests__/service-module.spec.d.ts +2 -0
- package/dist/scripts/generate-module/__tests__/service-module.spec.d.ts.map +1 -0
- package/dist/scripts/generate-module/__tests__/service-module.spec.js +33 -0
- package/dist/scripts/generate-module/__tests__/service-module.spec.js.map +1 -0
- package/dist/scripts/generate-module/generator.d.ts +2 -0
- package/dist/scripts/generate-module/generator.d.ts.map +1 -1
- package/dist/scripts/generate-module/generator.js +18 -5
- package/dist/scripts/generate-module/generator.js.map +1 -1
- package/dist/scripts/generate-module/index.js +3 -1
- package/dist/scripts/generate-module/index.js.map +1 -1
- package/dist/scripts/generate-module/templates/entity.template.d.ts.map +1 -1
- package/dist/scripts/generate-module/templates/entity.template.js +26 -8
- package/dist/scripts/generate-module/templates/entity.template.js.map +1 -1
- package/dist/scripts/generate-module/templates/module.template.d.ts.map +1 -1
- package/dist/scripts/generate-module/templates/module.template.js +14 -10
- package/dist/scripts/generate-module/templates/module.template.js.map +1 -1
- package/dist/scripts/generate-module/templates/service.spec.template.d.ts.map +1 -1
- package/dist/scripts/generate-module/templates/service.spec.template.js +14 -1
- package/dist/scripts/generate-module/templates/service.spec.template.js.map +1 -1
- package/dist/scripts/generate-module/templates/service.template.d.ts.map +1 -1
- package/dist/scripts/generate-module/templates/service.template.js +3 -1
- package/dist/scripts/generate-module/templates/service.template.js.map +1 -1
- package/dist/scripts/generate-module/transformers/relationship-mapper.d.ts.map +1 -1
- package/dist/scripts/generate-module/transformers/relationship-mapper.js +5 -0
- package/dist/scripts/generate-module/transformers/relationship-mapper.js.map +1 -1
- package/dist/scripts/generate-module/types/json-schema.interface.d.ts +18 -0
- package/dist/scripts/generate-module/types/json-schema.interface.d.ts.map +1 -1
- package/dist/scripts/generate-module/types/template-data.interface.d.ts +16 -0
- package/dist/scripts/generate-module/types/template-data.interface.d.ts.map +1 -1
- package/dist/scripts/generate-module/utils/dto-imports.d.ts +15 -0
- package/dist/scripts/generate-module/utils/dto-imports.d.ts.map +1 -0
- package/dist/scripts/generate-module/utils/dto-imports.js +36 -0
- package/dist/scripts/generate-module/utils/dto-imports.js.map +1 -0
- package/dist/scripts/generate-module/utils/module-registrar.d.ts +6 -1
- package/dist/scripts/generate-module/utils/module-registrar.d.ts.map +1 -1
- package/dist/scripts/generate-module/utils/module-registrar.js +21 -95
- package/dist/scripts/generate-module/utils/module-registrar.js.map +1 -1
- package/dist/scripts/generate-module/utils/scope-detector.d.ts +17 -0
- package/dist/scripts/generate-module/utils/scope-detector.d.ts.map +1 -0
- package/dist/scripts/generate-module/utils/scope-detector.js +153 -0
- package/dist/scripts/generate-module/utils/scope-detector.js.map +1 -0
- package/dist/scripts/generate-module/utils/type-utils.d.ts +5 -0
- package/dist/scripts/generate-module/utils/type-utils.d.ts.map +1 -1
- package/dist/scripts/generate-module/utils/type-utils.js +10 -1
- package/dist/scripts/generate-module/utils/type-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/entity.template.ts"],"names":[],"mappings":";;AAoCA,
|
|
1
|
+
{"version":3,"file":"entity.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/entity.template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/module.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"module.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/module.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAkC7D"}
|
|
@@ -8,12 +8,17 @@ exports.generateModuleFile = generateModuleFile;
|
|
|
8
8
|
* @returns Generated TypeScript code
|
|
9
9
|
*/
|
|
10
10
|
function generateModuleFile(data) {
|
|
11
|
-
const { names, targetDir } = data;
|
|
11
|
+
const { names, targetDir, requiresS3, exportService, sharedScope } = data;
|
|
12
|
+
const libImports = ["AuditModule", "GraphModule", "GraphDescriptorRegistry", "modelRegistry"];
|
|
13
|
+
if (requiresS3)
|
|
14
|
+
libImports.push("S3Module");
|
|
15
|
+
const moduleImports = requiresS3 ? "[AuditModule, S3Module, GraphModule]" : "[AuditModule, GraphModule]";
|
|
16
|
+
const exportsArr = exportService ? `[${names.pascalCase}Service]` : "[]";
|
|
12
17
|
return `import {
|
|
13
|
-
|
|
14
|
-
modelRegistry,
|
|
18
|
+
${[...libImports].sort().join(",\n ")},
|
|
15
19
|
} from "@carlonicora/nestjs-neo4jsonapi";
|
|
16
20
|
import { Module, OnModuleInit } from "@nestjs/common";
|
|
21
|
+
import { ModuleId } from "${sharedScope}";
|
|
17
22
|
import { ${names.pascalCase}Controller } from "src/${targetDir}/${names.kebabCase}/controllers/${names.kebabCase}.controller";
|
|
18
23
|
import { ${names.pascalCase}Descriptor } from "src/${targetDir}/${names.kebabCase}/entities/${names.kebabCase}";
|
|
19
24
|
import { ${names.pascalCase}Repository } from "src/${targetDir}/${names.kebabCase}/repositories/${names.kebabCase}.repository";
|
|
@@ -21,17 +26,16 @@ import { ${names.pascalCase}Service } from "src/${targetDir}/${names.kebabCase}/
|
|
|
21
26
|
|
|
22
27
|
@Module({
|
|
23
28
|
controllers: [${names.pascalCase}Controller],
|
|
24
|
-
providers: [
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
${names.pascalCase}Service,
|
|
28
|
-
],
|
|
29
|
-
exports: [],
|
|
30
|
-
imports: [AuditModule],
|
|
29
|
+
providers: [${names.pascalCase}Descriptor.model.serialiser, ${names.pascalCase}Repository, ${names.pascalCase}Service],
|
|
30
|
+
exports: ${exportsArr},
|
|
31
|
+
imports: ${moduleImports},
|
|
31
32
|
})
|
|
32
33
|
export class ${names.pascalCase}Module implements OnModuleInit {
|
|
34
|
+
constructor(private readonly graphRegistry: GraphDescriptorRegistry) {}
|
|
35
|
+
|
|
33
36
|
onModuleInit() {
|
|
34
37
|
modelRegistry.register(${names.pascalCase}Descriptor.model);
|
|
38
|
+
this.graphRegistry.register({ descriptor: ${names.pascalCase}Descriptor, moduleId: ModuleId.${names.pascalCase} });
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
41
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/module.template.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"module.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/module.template.ts"],"names":[],"mappings":";;AAQA,gDAkCC;AAxCD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,IAAkB;IACnD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE1E,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,yBAAyB,EAAE,eAAe,CAAC,CAAC;IAC9F,IAAI,UAAU;QAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,4BAA4B,CAAC;IACzG,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,OAAO;IACL,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;;;4BAGZ,WAAW;WAC5B,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,gBAAgB,KAAK,CAAC,SAAS;WACrG,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS;WAClG,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,iBAAiB,KAAK,CAAC,SAAS;WACtG,KAAK,CAAC,UAAU,uBAAuB,SAAS,IAAI,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS;;;kBAGxF,KAAK,CAAC,UAAU;gBAClB,KAAK,CAAC,UAAU,gCAAgC,KAAK,CAAC,UAAU,eAAe,KAAK,CAAC,UAAU;aAClG,UAAU;aACV,aAAa;;eAEX,KAAK,CAAC,UAAU;;;;6BAIF,KAAK,CAAC,UAAU;gDACG,KAAK,CAAC,UAAU,kCAAkC,KAAK,CAAC,UAAU;;;CAGjH,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.spec.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"service.spec.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA8ZlE"}
|
|
@@ -123,7 +123,7 @@ import { ClsService } from "nestjs-cls";
|
|
|
123
123
|
import { NotFoundException, ForbiddenException } from "@nestjs/common";
|
|
124
124
|
import { ${names.pascalCase}Service } from "./${names.kebabCase}.service";
|
|
125
125
|
import { ${names.pascalCase}Repository } from "../repositories/${names.kebabCase}.repository";${needsDescriptor ? `\nimport { ${names.pascalCase}Descriptor } from "../entities/${names.kebabCase}";` : ``}
|
|
126
|
-
import { JsonApiService } from "@carlonicora/nestjs-neo4jsonapi";
|
|
126
|
+
import { AuditService, JsonApiService } from "@carlonicora/nestjs-neo4jsonapi";
|
|
127
127
|
|
|
128
128
|
describe("${names.pascalCase}Service", () => {
|
|
129
129
|
let service: ${names.pascalCase}Service;
|
|
@@ -162,6 +162,15 @@ describe("${names.pascalCase}Service", () => {
|
|
|
162
162
|
set: vi.fn(),
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
+
const mockAuditService = {
|
|
166
|
+
logCreate: vi.fn(),
|
|
167
|
+
logRead: vi.fn(),
|
|
168
|
+
logUpdate: vi.fn(),
|
|
169
|
+
logDelete: vi.fn(),
|
|
170
|
+
findByEntity: vi.fn(),
|
|
171
|
+
findByUser: vi.fn(),
|
|
172
|
+
};
|
|
173
|
+
|
|
165
174
|
const module: TestingModule = await Test.createTestingModule({
|
|
166
175
|
providers: [
|
|
167
176
|
${names.pascalCase}Service,
|
|
@@ -177,6 +186,10 @@ describe("${names.pascalCase}Service", () => {
|
|
|
177
186
|
provide: ClsService,
|
|
178
187
|
useValue: mockClsService,
|
|
179
188
|
},
|
|
189
|
+
{
|
|
190
|
+
provide: AuditService,
|
|
191
|
+
useValue: mockAuditService,
|
|
192
|
+
},
|
|
180
193
|
],
|
|
181
194
|
}).compile();
|
|
182
195
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.spec.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAkBH,
|
|
1
|
+
{"version":3,"file":"service.spec.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.spec.template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"service.template.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAmC9D"}
|
|
@@ -13,6 +13,7 @@ function generateServiceFile(data) {
|
|
|
13
13
|
import { ClsService } from "nestjs-cls";
|
|
14
14
|
import {
|
|
15
15
|
AbstractService,
|
|
16
|
+
AuditService,
|
|
16
17
|
JsonApiService,
|
|
17
18
|
} from "@carlonicora/nestjs-neo4jsonapi";
|
|
18
19
|
import { ${names.pascalCase} } from "src/${targetDir}/${names.kebabCase}/entities/${names.kebabCase}";
|
|
@@ -27,8 +28,9 @@ export class ${names.pascalCase}Service extends AbstractService<${names.pascalCa
|
|
|
27
28
|
jsonApiService: JsonApiService,
|
|
28
29
|
private readonly ${names.camelCase}Repository: ${names.pascalCase}Repository,
|
|
29
30
|
clsService: ClsService,
|
|
31
|
+
auditService: AuditService,
|
|
30
32
|
) {
|
|
31
|
-
super(jsonApiService, ${names.camelCase}Repository, clsService, ${names.pascalCase}Descriptor.model);
|
|
33
|
+
super(jsonApiService, ${names.camelCase}Repository, clsService, ${names.pascalCase}Descriptor.model, auditService);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
// Inherited methods:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.template.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"service.template.js","sourceRoot":"","sources":["../../../../scripts/generate-module/templates/service.template.ts"],"names":[],"mappings":";;AAQA,kDAmCC;AAzCD;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAkB;IACpD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAElC,OAAO;;;;;;;WAOE,KAAK,CAAC,UAAU,gBAAgB,SAAS,IAAI,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS;WACxF,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS;WAClG,KAAK,CAAC,UAAU,0BAA0B,SAAS,IAAI,KAAK,CAAC,SAAS,iBAAiB,KAAK,CAAC,SAAS;;;eAGlG,KAAK,CAAC,UAAU,mCAAmC,KAAK,CAAC,UAAU,YAAY,KAAK,CAAC,UAAU;oCAC1E,KAAK,CAAC,UAAU;;;;uBAI7B,KAAK,CAAC,SAAS,eAAe,KAAK,CAAC,UAAU;;;;4BAIzC,KAAK,CAAC,SAAS,2BAA2B,KAAK,CAAC,UAAU;;;;;;;;;;CAUrF,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-mapper.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/transformers/relationship-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAiB,MAAM,kCAAkC,CAAC;AAUzF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,0BAA0B,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"relationship-mapper.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/transformers/relationship-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAiB,MAAM,kCAAkC,CAAC;AAUzF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,0BAA0B,GAAG,sBAAsB,CA+GvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,0BAA0B,EAAE,GAAG,sBAAsB,EAAE,CAEtG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,sBAAsB,EAAE,GAAG,MAAM,EAAE,CAGtF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,sBAAsB,EAAE,GAAG,MAAM,EAAE,CAGxF"}
|
|
@@ -51,6 +51,10 @@ function mapRelationship(rel) {
|
|
|
51
51
|
dtoKey = rel.single ? rel.name.toLowerCase() : (0, name_transformer_1.pluralize)(rel.name.toLowerCase());
|
|
52
52
|
dtoPropertyKey = dtoKey; // Same as dtoKey (already camelCase-compatible)
|
|
53
53
|
}
|
|
54
|
+
// Explicit dtoKey from schema wins over derivation (e.g. "estimateitems").
|
|
55
|
+
if (rel.dtoKey) {
|
|
56
|
+
dtoKey = rel.dtoKey;
|
|
57
|
+
}
|
|
54
58
|
// Determine relationship key (what it's called in the descriptor)
|
|
55
59
|
const key = (0, name_transformer_1.toCamelCase)(rel.alias || rel.variant || rel.name);
|
|
56
60
|
// Related entity name transformations
|
|
@@ -103,6 +107,7 @@ function mapRelationship(rel) {
|
|
|
103
107
|
contextKey,
|
|
104
108
|
dtoKey,
|
|
105
109
|
dtoPropertyKey,
|
|
110
|
+
description: rel.description,
|
|
106
111
|
required: !rel.nullable,
|
|
107
112
|
relatedEntity: {
|
|
108
113
|
name: rel.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-mapper.js","sourceRoot":"","sources":["../../../../scripts/generate-module/transformers/relationship-mapper.ts"],"names":[],"mappings":";;AAyBA,
|
|
1
|
+
{"version":3,"file":"relationship-mapper.js","sourceRoot":"","sources":["../../../../scripts/generate-module/transformers/relationship-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,14 @@ export interface JsonFieldDefinition {
|
|
|
11
11
|
name: string;
|
|
12
12
|
type: string;
|
|
13
13
|
nullable: boolean;
|
|
14
|
+
description?: string;
|
|
15
|
+
kind?: {
|
|
16
|
+
type: string;
|
|
17
|
+
};
|
|
18
|
+
/** Raw TS expression used as the body of (p) => … in the descriptor's computed{} block. */
|
|
19
|
+
computed?: string;
|
|
20
|
+
/** Present in entity type + interface + rehydrate, omitted from write paths. */
|
|
21
|
+
readOnly?: boolean;
|
|
14
22
|
}
|
|
15
23
|
/**
|
|
16
24
|
* Relationship definition in JSON schema
|
|
@@ -29,6 +37,9 @@ export interface JsonRelationshipDefinition {
|
|
|
29
37
|
fields?: JsonFieldDefinition[];
|
|
30
38
|
/** If true, relationship is set only on creation and skipped during PUT (default: false) */
|
|
31
39
|
immutable?: boolean;
|
|
40
|
+
/** JSON:API wire key; taken verbatim when present (e.g. "estimateitems"). */
|
|
41
|
+
dtoKey?: string;
|
|
42
|
+
description?: string;
|
|
32
43
|
}
|
|
33
44
|
/**
|
|
34
45
|
* Complete module definition from JSON
|
|
@@ -43,5 +54,12 @@ export interface JsonModuleDefinition {
|
|
|
43
54
|
languages: string[];
|
|
44
55
|
fields: JsonFieldDefinition[];
|
|
45
56
|
relationships: JsonRelationshipDefinition[];
|
|
57
|
+
description?: string;
|
|
58
|
+
chat?: {
|
|
59
|
+
summary: string;
|
|
60
|
+
textSearchFields: string[];
|
|
61
|
+
};
|
|
62
|
+
requiresS3?: boolean;
|
|
63
|
+
exportService?: boolean;
|
|
46
64
|
}
|
|
47
65
|
//# sourceMappingURL=json-schema.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/types/json-schema.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"json-schema.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/types/json-schema.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sHAAsH;IACtH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,aAAa,EAAE,0BAA0B,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -27,6 +27,12 @@ export interface TemplateField {
|
|
|
27
27
|
type: string;
|
|
28
28
|
required: boolean;
|
|
29
29
|
tsType: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
kind?: {
|
|
32
|
+
type: string;
|
|
33
|
+
};
|
|
34
|
+
computed?: string;
|
|
35
|
+
readOnly?: boolean;
|
|
30
36
|
}
|
|
31
37
|
/**
|
|
32
38
|
* Processed relationship for entity descriptor
|
|
@@ -54,6 +60,7 @@ export interface DescriptorRelationship {
|
|
|
54
60
|
fields?: TemplateField[];
|
|
55
61
|
immutable?: boolean;
|
|
56
62
|
alias?: string;
|
|
63
|
+
description?: string;
|
|
57
64
|
}
|
|
58
65
|
/**
|
|
59
66
|
* Nested route configuration
|
|
@@ -110,6 +117,15 @@ export interface TemplateData {
|
|
|
110
117
|
nodeName: string;
|
|
111
118
|
isCompanyScoped: boolean;
|
|
112
119
|
targetDir: string;
|
|
120
|
+
/** Host app's shared package scope, e.g. "@dreamer/shared" (source of ModuleId). */
|
|
121
|
+
sharedScope: string;
|
|
122
|
+
description?: string;
|
|
123
|
+
chat?: {
|
|
124
|
+
summary: string;
|
|
125
|
+
textSearchFields: string[];
|
|
126
|
+
};
|
|
127
|
+
requiresS3: boolean;
|
|
128
|
+
exportService: boolean;
|
|
113
129
|
fields: TemplateField[];
|
|
114
130
|
relationships: DescriptorRelationship[];
|
|
115
131
|
aliasMetas: AliasMetaInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-data.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/types/template-data.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"template-data.interface.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/types/template-data.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prune a generated DTO file's `class-validator` import to exactly the
|
|
3
|
+
* decorators it actually uses.
|
|
4
|
+
*
|
|
5
|
+
* The validator import list is assembled from a fixed base set plus field-type
|
|
6
|
+
* inferences, which can over-include (e.g. `IsOptional` when every field and
|
|
7
|
+
* relationship is required, or `IsDefined` when everything is optional). An
|
|
8
|
+
* unused import is an ESLint `no-unused-vars` error, so we filter the list down
|
|
9
|
+
* to the names that appear as a `@Name(` decorator in the rest of the file.
|
|
10
|
+
*
|
|
11
|
+
* @param content - The full generated DTO file content.
|
|
12
|
+
* @returns The content with its class-validator import line pruned.
|
|
13
|
+
*/
|
|
14
|
+
export declare function pruneClassValidatorImports(content: string): string;
|
|
15
|
+
//# sourceMappingURL=dto-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto-imports.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/dto-imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoBlE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pruneClassValidatorImports = pruneClassValidatorImports;
|
|
4
|
+
/**
|
|
5
|
+
* Prune a generated DTO file's `class-validator` import to exactly the
|
|
6
|
+
* decorators it actually uses.
|
|
7
|
+
*
|
|
8
|
+
* The validator import list is assembled from a fixed base set plus field-type
|
|
9
|
+
* inferences, which can over-include (e.g. `IsOptional` when every field and
|
|
10
|
+
* relationship is required, or `IsDefined` when everything is optional). An
|
|
11
|
+
* unused import is an ESLint `no-unused-vars` error, so we filter the list down
|
|
12
|
+
* to the names that appear as a `@Name(` decorator in the rest of the file.
|
|
13
|
+
*
|
|
14
|
+
* @param content - The full generated DTO file content.
|
|
15
|
+
* @returns The content with its class-validator import line pruned.
|
|
16
|
+
*/
|
|
17
|
+
function pruneClassValidatorImports(content) {
|
|
18
|
+
const importRe = /import \{ ([^}]+) \} from "class-validator";/;
|
|
19
|
+
const match = content.match(importRe);
|
|
20
|
+
if (!match)
|
|
21
|
+
return content;
|
|
22
|
+
const names = match[1]
|
|
23
|
+
.split(",")
|
|
24
|
+
.map((n) => n.trim())
|
|
25
|
+
.filter(Boolean);
|
|
26
|
+
// Everything except the import line itself — a name appearing only in the
|
|
27
|
+
// import must not count as "used".
|
|
28
|
+
const body = content.replace(importRe, "");
|
|
29
|
+
const used = names.filter((name) => new RegExp(`@${name}\\(`).test(body));
|
|
30
|
+
// class-validator decorators are always used somewhere (Equals/IsUUID at minimum),
|
|
31
|
+
// but guard against an empty list just in case.
|
|
32
|
+
if (used.length === 0)
|
|
33
|
+
return content;
|
|
34
|
+
return content.replace(importRe, `import { ${used.join(", ")} } from "class-validator";`);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=dto-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dto-imports.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/dto-imports.ts"],"names":[],"mappings":";;AAaA,gEAoBC;AAjCD;;;;;;;;;;;;GAYG;AACH,SAAgB,0BAA0B,CAAC,OAAe;IACxD,MAAM,QAAQ,GAAG,8CAA8C,CAAC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,CAAC;IAE3B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,0EAA0E;IAC1E,mCAAmC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,mFAAmF;IACnF,gDAAgD;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEtC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Register the new module in the base aggregator module file.
|
|
3
|
+
*
|
|
4
|
+
* The leaf `<Module>Module` is added directly to `features.modules.ts`
|
|
5
|
+
* (or `foundations.modules.ts`) regardless of how deep `targetDir` is. The repo
|
|
6
|
+
* lists leaf feature modules there directly; creating per-domain sub-aggregators
|
|
7
|
+
* produced orphan `*.modules.ts` files and double-registration.
|
|
3
8
|
*
|
|
4
9
|
* @param params - Module information
|
|
5
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registrar.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-registrar.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":"AAkFA;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAeP"}
|
|
@@ -36,15 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.registerModule = registerModule;
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
-
/**
|
|
40
|
-
* Convert kebab-case to PascalCase
|
|
41
|
-
*/
|
|
42
|
-
function toPascalCase(str) {
|
|
43
|
-
return str
|
|
44
|
-
.split("-")
|
|
45
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
46
|
-
.join("");
|
|
47
|
-
}
|
|
48
39
|
/**
|
|
49
40
|
* Register an import and add to @Module imports array in a module file
|
|
50
41
|
*/
|
|
@@ -90,106 +81,41 @@ function addToModuleFile(params) {
|
|
|
90
81
|
}
|
|
91
82
|
content = content.slice(0, insertPosition) + newImport + content.slice(insertPosition);
|
|
92
83
|
// Find the @Module imports array
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
84
|
+
// Insert the new module as the first entry in the @Module imports array.
|
|
85
|
+
// We deliberately do NOT split/re-sort the existing entries: an entry such as
|
|
86
|
+
// `RbacModule.register({ moduleUserPaths, rbac, devMode })` contains commas and
|
|
87
|
+
// would be shredded by a naive `split(",")`. Prepending after the opening `[`
|
|
88
|
+
// is comma-safe; Prettier (run afterwards) normalises the formatting.
|
|
89
|
+
const importsArrayOpenRegex = /imports:\s*\[/;
|
|
90
|
+
if (!importsArrayOpenRegex.test(content)) {
|
|
96
91
|
throw new Error(`Could not find @Module imports array in ${fullPath}`);
|
|
97
92
|
}
|
|
98
|
-
|
|
99
|
-
const importsArrayContent = match[1];
|
|
100
|
-
const modules = importsArrayContent
|
|
101
|
-
.split(",")
|
|
102
|
-
.map((m) => m.trim())
|
|
103
|
-
.filter((m) => m);
|
|
104
|
-
// Add new module alphabetically
|
|
105
|
-
modules.push(moduleClassName);
|
|
106
|
-
modules.sort();
|
|
107
|
-
// Rebuild imports array with proper formatting
|
|
108
|
-
const newImportsArray = `imports: [\n ${modules.join(",\n ")},\n ]`;
|
|
109
|
-
content = content.replace(moduleImportsRegex, newImportsArray);
|
|
93
|
+
content = content.replace(importsArrayOpenRegex, (open) => `${open}\n ${moduleClassName},`);
|
|
110
94
|
// Write back
|
|
111
95
|
fs.writeFileSync(fullPath, content, "utf-8");
|
|
112
96
|
console.info(`✓ Registered ${moduleClassName} in ${fullPath}`);
|
|
113
97
|
}
|
|
114
98
|
/**
|
|
115
|
-
*
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
@Module({
|
|
123
|
-
imports: [],
|
|
124
|
-
})
|
|
125
|
-
export class ${pascalName}Modules {}
|
|
126
|
-
`;
|
|
127
|
-
const filePath = path.resolve(process.cwd(), `apps/api/src/${targetDir}/${subfolderName}.modules.ts`);
|
|
128
|
-
if (dryRun) {
|
|
129
|
-
console.info(`[DRY RUN] Would create ${filePath}`);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
// Ensure the directory exists
|
|
133
|
-
const dir = path.dirname(filePath);
|
|
134
|
-
if (!fs.existsSync(dir)) {
|
|
135
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
136
|
-
}
|
|
137
|
-
fs.writeFileSync(filePath, content, "utf-8");
|
|
138
|
-
console.info(`✓ Created ${filePath}`);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Update parent modules.ts to register the new module
|
|
99
|
+
* Register the new module in the base aggregator module file.
|
|
100
|
+
*
|
|
101
|
+
* The leaf `<Module>Module` is added directly to `features.modules.ts`
|
|
102
|
+
* (or `foundations.modules.ts`) regardless of how deep `targetDir` is. The repo
|
|
103
|
+
* lists leaf feature modules there directly; creating per-domain sub-aggregators
|
|
104
|
+
* produced orphan `*.modules.ts` files and double-registration.
|
|
142
105
|
*
|
|
143
106
|
* @param params - Module information
|
|
144
107
|
*/
|
|
145
108
|
function registerModule(params) {
|
|
146
109
|
const { moduleName, targetDir, kebabName, dryRun = false } = params;
|
|
147
|
-
const
|
|
148
|
-
const baseDir = segments[0]; // "features" or "foundations"
|
|
110
|
+
const baseDir = targetDir.split("/")[0]; // "features" or "foundations"
|
|
149
111
|
if (!["features", "foundations"].includes(baseDir)) {
|
|
150
112
|
throw new Error(`Unknown target directory: ${targetDir}. Must start with "features" or "foundations"`);
|
|
151
113
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
moduleClassName,
|
|
159
|
-
importPath,
|
|
160
|
-
dryRun,
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
// Subdirectory case: "features/customer-management" → register in subfolder
|
|
165
|
-
const subfolderName = segments[1]; // e.g., "customer-management"
|
|
166
|
-
const subfolderModulePath = `apps/api/src/${targetDir}/${subfolderName}.modules.ts`;
|
|
167
|
-
const fullSubfolderPath = path.resolve(process.cwd(), subfolderModulePath);
|
|
168
|
-
// Check if subfolder's .modules.ts exists
|
|
169
|
-
if (!fs.existsSync(fullSubfolderPath)) {
|
|
170
|
-
// Create the subfolder's .modules.ts file
|
|
171
|
-
createSubfolderModulesFile({
|
|
172
|
-
subfolderName,
|
|
173
|
-
targetDir,
|
|
174
|
-
dryRun,
|
|
175
|
-
});
|
|
176
|
-
// Register the new subfolder modules in the parent
|
|
177
|
-
const parentModulePath = `apps/api/src/${baseDir}/${baseDir}.modules.ts`;
|
|
178
|
-
const pascalSubfolderName = toPascalCase(subfolderName);
|
|
179
|
-
addToModuleFile({
|
|
180
|
-
moduleFilePath: parentModulePath,
|
|
181
|
-
moduleClassName: `${pascalSubfolderName}Modules`,
|
|
182
|
-
importPath: `src/${targetDir}/${subfolderName}.modules`,
|
|
183
|
-
dryRun,
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
// Register the new module in the subfolder's .modules.ts
|
|
187
|
-
addToModuleFile({
|
|
188
|
-
moduleFilePath: subfolderModulePath,
|
|
189
|
-
moduleClassName,
|
|
190
|
-
importPath,
|
|
191
|
-
dryRun,
|
|
192
|
-
});
|
|
193
|
-
}
|
|
114
|
+
addToModuleFile({
|
|
115
|
+
moduleFilePath: `apps/api/src/${baseDir}/${baseDir}.modules.ts`,
|
|
116
|
+
moduleClassName: `${moduleName}Module`,
|
|
117
|
+
importPath: `src/${targetDir}/${kebabName}/${kebabName}.module`,
|
|
118
|
+
dryRun,
|
|
119
|
+
});
|
|
194
120
|
}
|
|
195
121
|
//# sourceMappingURL=module-registrar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registrar.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"module-registrar.js","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/module-registrar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect the host app's "shared" package import scope (e.g. `@dreamer/shared`).
|
|
3
|
+
*
|
|
4
|
+
* The generated module imports `ModuleId` from this package. The scope differs
|
|
5
|
+
* per host app, so it must be resolved from the target repo rather than
|
|
6
|
+
* hardcoded. Resolution order:
|
|
7
|
+
* 1. explicit override (CLI `--shared-scope`)
|
|
8
|
+
* 2. a `@<scope>/shared` key in `tsconfig.base.json` / `tsconfig.json` paths
|
|
9
|
+
* 3. a `@<scope>/shared` entry in the root `package.json` dependencies
|
|
10
|
+
* 4. the provided fallback
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectSharedScope(params?: {
|
|
13
|
+
cwd?: string;
|
|
14
|
+
override?: string;
|
|
15
|
+
fallback?: string;
|
|
16
|
+
}): string;
|
|
17
|
+
//# sourceMappingURL=scope-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-detector.d.ts","sourceRoot":"","sources":["../../../../scripts/generate-module/utils/scope-detector.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAazG"}
|