nestjs-ddd-cli 3.2.1 → 3.3.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/README.md +118 -9
- package/ddd.schema.json +11 -1
- package/dist/commands/doctor-enhanced.d.ts +1 -0
- package/dist/commands/doctor-enhanced.js +94 -79
- package/dist/commands/doctor-enhanced.js.map +1 -1
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.js +68 -21
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/generate-all.js +238 -176
- package/dist/commands/generate-all.js.map +1 -1
- package/dist/commands/generate-controller.d.ts +1 -0
- package/dist/commands/generate-controller.js +71 -0
- package/dist/commands/generate-controller.js.map +1 -0
- package/dist/commands/generate-domain-service.d.ts +1 -1
- package/dist/commands/generate-domain-service.js +6 -4
- package/dist/commands/generate-domain-service.js.map +1 -1
- package/dist/commands/generate-dto.d.ts +4 -0
- package/dist/commands/generate-dto.js +162 -0
- package/dist/commands/generate-dto.js.map +1 -0
- package/dist/commands/generate-entity.js +44 -35
- package/dist/commands/generate-entity.js.map +1 -1
- package/dist/commands/generate-event.js +10 -4
- package/dist/commands/generate-event.js.map +1 -1
- package/dist/commands/generate-migration-deployment.d.ts +15 -0
- package/dist/commands/generate-migration-deployment.js +326 -0
- package/dist/commands/generate-migration-deployment.js.map +1 -0
- package/dist/commands/generate-migration-deployment.spec.d.ts +1 -0
- package/dist/commands/generate-migration-deployment.spec.js +337 -0
- package/dist/commands/generate-migration-deployment.spec.js.map +1 -0
- package/dist/commands/generate-module.js +41 -31
- package/dist/commands/generate-module.js.map +1 -1
- package/dist/commands/generate-query.js +23 -4
- package/dist/commands/generate-query.js.map +1 -1
- package/dist/commands/generate-repository.d.ts +1 -1
- package/dist/commands/generate-repository.js +17 -34
- package/dist/commands/generate-repository.js.map +1 -1
- package/dist/commands/generate-service.js +19 -4
- package/dist/commands/generate-service.js.map +1 -1
- package/dist/commands/generate-usecase.js +12 -31
- package/dist/commands/generate-usecase.js.map +1 -1
- package/dist/commands/generate-value-object.js +3 -14
- package/dist/commands/generate-value-object.js.map +1 -1
- package/dist/commands/init-project.d.ts +3 -0
- package/dist/commands/init-project.js +19 -9
- package/dist/commands/init-project.js.map +1 -1
- package/dist/commands/interactive-scaffold.js +10 -0
- package/dist/commands/interactive-scaffold.js.map +1 -1
- package/dist/commands/migration.d.ts +3 -0
- package/dist/commands/migration.js +83 -48
- package/dist/commands/migration.js.map +1 -1
- package/dist/commands/recipe.d.ts +2 -0
- package/dist/commands/recipe.js +282 -91
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/recipes/banklink-connector-contract.recipe.d.ts +1 -0
- package/dist/commands/recipes/banklink-connector-contract.recipe.js +161 -0
- package/dist/commands/recipes/banklink-connector-contract.recipe.js.map +1 -0
- package/dist/commands/recipes/bounded-json-http.recipe.d.ts +2 -0
- package/dist/commands/recipes/bounded-json-http.recipe.js +53 -0
- package/dist/commands/recipes/bounded-json-http.recipe.js.map +1 -0
- package/dist/commands/recipes/business-reference-identifiers.recipe.d.ts +1 -0
- package/dist/commands/recipes/business-reference-identifiers.recipe.js +223 -0
- package/dist/commands/recipes/business-reference-identifiers.recipe.js.map +1 -0
- package/dist/commands/recipes/event-backbone.recipe.d.ts +1 -0
- package/dist/commands/recipes/event-backbone.recipe.js +1118 -0
- package/dist/commands/recipes/event-backbone.recipe.js.map +1 -0
- package/dist/commands/recipes/external-projection-worker.recipe.d.ts +6 -0
- package/dist/commands/recipes/external-projection-worker.recipe.js +211 -0
- package/dist/commands/recipes/external-projection-worker.recipe.js.map +1 -0
- package/dist/commands/recipes/index.d.ts +12 -0
- package/dist/commands/recipes/index.js +12 -0
- package/dist/commands/recipes/index.js.map +1 -1
- package/dist/commands/recipes/jest-cjs-compat.recipe.d.ts +3 -0
- package/dist/commands/recipes/jest-cjs-compat.recipe.js +130 -0
- package/dist/commands/recipes/jest-cjs-compat.recipe.js.map +1 -0
- package/dist/commands/recipes/joi-env.recipe.d.ts +1 -0
- package/dist/commands/recipes/joi-env.recipe.js +301 -0
- package/dist/commands/recipes/joi-env.recipe.js.map +1 -0
- package/dist/commands/recipes/kafka-consumer.recipe.d.ts +1 -0
- package/dist/commands/recipes/kafka-consumer.recipe.js +65 -0
- package/dist/commands/recipes/kafka-consumer.recipe.js.map +1 -0
- package/dist/commands/recipes/oauth2-client-credentials.recipe.d.ts +1 -0
- package/dist/commands/recipes/oauth2-client-credentials.recipe.js +60 -0
- package/dist/commands/recipes/oauth2-client-credentials.recipe.js.map +1 -0
- package/dist/commands/recipes/oauth2-token-introspection.recipe.d.ts +1 -0
- package/dist/commands/recipes/oauth2-token-introspection.recipe.js +67 -0
- package/dist/commands/recipes/oauth2-token-introspection.recipe.js.map +1 -0
- package/dist/commands/recipes/oidc-bff-session.recipe.d.ts +1 -0
- package/dist/commands/recipes/oidc-bff-session.recipe.js +57 -0
- package/dist/commands/recipes/oidc-bff-session.recipe.js.map +1 -0
- package/dist/commands/recipes/oidc-dashboard.recipe.d.ts +1 -0
- package/dist/commands/recipes/oidc-dashboard.recipe.js +463 -0
- package/dist/commands/recipes/oidc-dashboard.recipe.js.map +1 -0
- package/dist/commands/recipes/oidc-resource-server.recipe.d.ts +1 -0
- package/dist/commands/recipes/oidc-resource-server.recipe.js +85 -0
- package/dist/commands/recipes/oidc-resource-server.recipe.js.map +1 -0
- package/dist/commands/recipes/platform-context.recipe.d.ts +1 -0
- package/dist/commands/recipes/platform-context.recipe.js +229 -0
- package/dist/commands/recipes/platform-context.recipe.js.map +1 -0
- package/dist/commands/recipes/platform-parc-authorization.recipe.d.ts +1 -0
- package/dist/commands/recipes/platform-parc-authorization.recipe.js +339 -0
- package/dist/commands/recipes/platform-parc-authorization.recipe.js.map +1 -0
- package/dist/commands/recipes/platform-parc-bound-authorization.recipe.d.ts +1 -0
- package/dist/commands/recipes/platform-parc-bound-authorization.recipe.js +56 -0
- package/dist/commands/recipes/platform-parc-bound-authorization.recipe.js.map +1 -0
- package/dist/commands/recipes/platform-service-access-request-context.recipe.d.ts +1 -0
- package/dist/commands/recipes/platform-service-access-request-context.recipe.js +103 -0
- package/dist/commands/recipes/platform-service-access-request-context.recipe.js.map +1 -0
- package/dist/commands/recipes/platform-service-runtime.recipe.d.ts +1 -0
- package/dist/commands/recipes/platform-service-runtime.recipe.js +415 -0
- package/dist/commands/recipes/platform-service-runtime.recipe.js.map +1 -0
- package/dist/index.js +82 -11
- package/dist/index.js.map +1 -1
- package/dist/templates/ai-context/CLAUDE.md.hbs +54 -3
- package/dist/templates/ai-context/conventions.md.hbs +20 -8
- package/dist/templates/command/create-command.hbs +8 -3
- package/dist/templates/command/delete-command.hbs +1 -1
- package/dist/templates/command/update-command.hbs +1 -1
- package/dist/templates/controller/application-controller.hbs +7 -0
- package/dist/templates/controller/controller.hbs +6 -0
- package/dist/templates/dto/create-dto.hbs +17 -5
- package/dist/templates/dto/filter-dto.hbs +1 -1
- package/dist/templates/dto/response-dto.hbs +1 -1
- package/dist/templates/entity/entity.hbs +4 -0
- package/dist/templates/mapper/mapper.hbs +6 -2
- package/dist/templates/orm-entity/orm-entity.hbs +9 -1
- package/dist/templates/prisma/prisma-mapper.hbs +6 -0
- package/dist/templates/prisma/prisma-repository.hbs +57 -5
- package/dist/templates/prisma/prisma-schema.hbs +2 -0
- package/dist/templates/query/get-all.query.hbs +10 -2
- package/dist/templates/recipes/bounded-json-http/README.md.hbs +36 -0
- package/dist/templates/recipes/external-projection-worker/README.md.hbs +157 -0
- package/dist/templates/recipes/external-projection-worker/canonical-json.ts.hbs +123 -0
- package/dist/templates/recipes/external-projection-worker/enqueuer.ts.hbs +167 -0
- package/dist/templates/recipes/external-projection-worker/index.ts.hbs +6 -0
- package/dist/templates/recipes/external-projection-worker/migration.ts.hbs +88 -0
- package/dist/templates/recipes/external-projection-worker/module.ts.hbs +36 -0
- package/dist/templates/recipes/external-projection-worker/store.ts.hbs +354 -0
- package/dist/templates/recipes/external-projection-worker/types.ts.hbs +134 -0
- package/dist/templates/recipes/external-projection-worker/worker.ts.hbs +296 -0
- package/dist/templates/recipes/kafka-consumer/README.md.hbs +50 -0
- package/dist/templates/recipes/kafka-consumer/kafka-consumer.ts.hbs +135 -0
- package/dist/templates/recipes/kafka-consumer/migration.ts.hbs +17 -0
- package/dist/templates/recipes/oauth2-client-credentials/README.md.hbs +40 -0
- package/dist/templates/recipes/oauth2-client-credentials/client.spec.ts.hbs +234 -0
- package/dist/templates/recipes/oauth2-client-credentials/client.ts.hbs +210 -0
- package/dist/templates/recipes/oauth2-client-credentials/index.ts.hbs +2 -0
- package/dist/templates/recipes/oauth2-client-credentials/module.ts.hbs +58 -0
- package/dist/templates/recipes/oauth2-token-introspection/README.md.hbs +158 -0
- package/dist/templates/recipes/oauth2-token-introspection/client.spec.ts.hbs +350 -0
- package/dist/templates/recipes/oauth2-token-introspection/client.ts.hbs +241 -0
- package/dist/templates/recipes/oauth2-token-introspection/http-client.spec.ts.hbs +411 -0
- package/dist/templates/recipes/oauth2-token-introspection/http-client.ts.hbs +343 -0
- package/dist/templates/recipes/oauth2-token-introspection/index.ts.hbs +3 -0
- package/dist/templates/recipes/oauth2-token-introspection/module.ts.hbs +58 -0
- package/dist/templates/recipes/oidc-bff-session/README.md.hbs +96 -0
- package/dist/templates/recipes/oidc-bff-session/client.test.ts.hbs +663 -0
- package/dist/templates/recipes/oidc-bff-session/client.ts.hbs +635 -0
- package/dist/templates/recipes/oidc-bff-session/index.ts.hbs +3 -0
- package/dist/templates/recipes/oidc-bff-session/store.integration.test.ts.hbs +480 -0
- package/dist/templates/recipes/oidc-bff-session/store.test.ts.hbs +87 -0
- package/dist/templates/recipes/oidc-bff-session/store.ts.hbs +549 -0
- package/dist/templates/recipes/oidc-bff-session/valkey.test.ts.hbs +158 -0
- package/dist/templates/recipes/oidc-bff-session/valkey.ts.hbs +148 -0
- package/dist/templates/recipes/oidc-resource-server/README.md.hbs +74 -0
- package/dist/templates/recipes/oidc-resource-server/index.ts.hbs +2 -0
- package/dist/templates/recipes/oidc-resource-server/module.ts.hbs +51 -0
- package/dist/templates/recipes/oidc-resource-server/verifier.spec.ts.hbs +186 -0
- package/dist/templates/recipes/oidc-resource-server/verifier.ts.hbs +440 -0
- package/dist/templates/recipes/platform-parc-bound-authorization/README.md.hbs +92 -0
- package/dist/templates/recipes/platform-parc-bound-authorization/client.ts.hbs +142 -0
- package/dist/templates/recipes/platform-service-access-request-context/docs.md.hbs +61 -0
- package/dist/templates/recipes/platform-service-access-request-context/env.example.hbs +7 -0
- package/dist/templates/recipes/platform-service-access-request-context/index.ts.hbs +7 -0
- package/dist/templates/recipes/platform-service-access-request-context/request-context-headers.ts.hbs +61 -0
- package/dist/templates/recipes/platform-service-access-request-context/request-context-introspection.parser.ts.hbs +132 -0
- package/dist/templates/recipes/platform-service-access-request-context/request-context-introspection.types.ts.hbs +40 -0
- package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.client.ts.hbs +45 -0
- package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.config.ts.hbs +142 -0
- package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.guard.ts.hbs +77 -0
- package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.module.ts.hbs +17 -0
- package/dist/templates/repository/repository.hbs +43 -5
- package/dist/templates/resolver/graphql-input.hbs +23 -6
- package/dist/templates/resolver/resolver.hbs +4 -0
- package/dist/templates/service/domain-service.hbs +2 -2
- package/dist/templates/test/controller.spec.hbs +5 -1
- package/dist/templates/test/prisma-repository.spec.hbs +192 -0
- package/dist/templates/test/repository.spec.hbs +41 -2
- package/dist/templates/test/usecase.spec.hbs +24 -5
- package/dist/templates/usecase/application-usecase.hbs +17 -0
- package/dist/templates/usecase/create-usecase.hbs +34 -3
- package/dist/templates/usecase/update-usecase.hbs +15 -1
- package/dist/utils/config.utils.d.ts +2 -0
- package/dist/utils/config.utils.js +14 -2
- package/dist/utils/config.utils.js.map +1 -1
- package/dist/utils/dependency.utils.d.ts +18 -2
- package/dist/utils/dependency.utils.js +144 -15
- package/dist/utils/dependency.utils.js.map +1 -1
- package/dist/utils/field.utils.d.ts +6 -0
- package/dist/utils/field.utils.js +78 -24
- package/dist/utils/field.utils.js.map +1 -1
- package/dist/utils/field.utils.spec.d.ts +1 -0
- package/dist/utils/field.utils.spec.js +38 -0
- package/dist/utils/field.utils.spec.js.map +1 -0
- package/dist/utils/file.utils.d.ts +39 -3
- package/dist/utils/file.utils.js +150 -13
- package/dist/utils/file.utils.js.map +1 -1
- package/dist/utils/naming.utils.js +5 -4
- package/dist/utils/naming.utils.js.map +1 -1
- package/dist/utils/static-recipe.utils.d.ts +4 -0
- package/dist/utils/static-recipe.utils.js +148 -0
- package/dist/utils/static-recipe.utils.js.map +1 -0
- package/dist/utils/template-engine.utils.js +83 -68
- package/dist/utils/template-engine.utils.js.map +1 -1
- package/package.json +20 -11
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parseFields = parseFields;
|
|
4
4
|
exports.generateFieldsTemplateData = generateFieldsTemplateData;
|
|
5
5
|
const naming_utils_1 = require("./naming.utils");
|
|
6
|
+
const BASE_ENTITY_FIELD_NAMES = new Set(['id', 'isActive', 'createdAt', 'updatedAt', 'deletedAt']);
|
|
6
7
|
/**
|
|
7
8
|
* Parse field definitions from CLI --fields flag
|
|
8
9
|
* Format: "name:type:modifier1:modifier2"
|
|
@@ -12,30 +13,53 @@ const naming_utils_1 = require("./naming.utils");
|
|
|
12
13
|
* "email:string:unique" -> required unique string with IsEmail
|
|
13
14
|
* "age:number:optional" -> optional number
|
|
14
15
|
* "status:enum:active,inactive" -> enum with values
|
|
16
|
+
* "amount:money" -> exact decimal stored as a TypeScript string
|
|
17
|
+
* "tenantId:uuid:serverOwned" -> persisted field excluded from request DTOs
|
|
15
18
|
* "tags:string[]" -> string array
|
|
16
19
|
* "userId:uuid:relation" -> foreign key relation
|
|
17
20
|
*/
|
|
18
21
|
function parseFields(fieldsString) {
|
|
19
22
|
if (!fieldsString || fieldsString.trim() === '') {
|
|
20
|
-
return {
|
|
23
|
+
return {
|
|
24
|
+
fields: [],
|
|
25
|
+
hasEmail: false,
|
|
26
|
+
hasDate: false,
|
|
27
|
+
hasEnum: false,
|
|
28
|
+
hasRelation: false,
|
|
29
|
+
hasMoney: false,
|
|
30
|
+
hasServerOwned: false,
|
|
31
|
+
};
|
|
21
32
|
}
|
|
22
|
-
const fieldDefs = fieldsString
|
|
33
|
+
const fieldDefs = fieldsString
|
|
34
|
+
.split(' ')
|
|
35
|
+
.filter((fieldDefinition) => fieldDefinition.trim() !== '')
|
|
36
|
+
.filter((fieldDefinition) => {
|
|
37
|
+
const fieldName = (0, naming_utils_1.toCamelCase)(fieldDefinition.split(':')[0]?.trim() ?? '');
|
|
38
|
+
return !BASE_ENTITY_FIELD_NAMES.has(fieldName);
|
|
39
|
+
});
|
|
23
40
|
let hasEmail = false;
|
|
24
41
|
let hasDate = false;
|
|
25
42
|
let hasEnum = false;
|
|
26
43
|
let hasRelation = false;
|
|
27
|
-
|
|
44
|
+
let hasMoney = false;
|
|
45
|
+
let hasServerOwned = false;
|
|
46
|
+
const fields = fieldDefs.map((fieldDef) => {
|
|
28
47
|
const parts = fieldDef.split(':');
|
|
29
|
-
const name = parts[0];
|
|
48
|
+
const name = parts[0]?.trim();
|
|
49
|
+
if (!name) {
|
|
50
|
+
throw new Error(`Invalid field definition: ${fieldDef}`);
|
|
51
|
+
}
|
|
30
52
|
const typeWithArray = parts[1] || 'string';
|
|
31
53
|
const modifiers = parts.slice(2);
|
|
32
54
|
const isArray = typeWithArray.endsWith('[]');
|
|
33
55
|
const baseType = isArray ? typeWithArray.slice(0, -2) : typeWithArray;
|
|
34
56
|
const isOptional = modifiers.includes('optional');
|
|
35
57
|
const isUnique = modifiers.includes('unique');
|
|
58
|
+
const isMoney = baseType.toLowerCase() === 'money';
|
|
59
|
+
const isServerOwned = modifiers.includes('serverOwned') || modifiers.includes('internal');
|
|
36
60
|
// Check for relation type
|
|
37
61
|
const relationTypes = ['OneToOne', 'OneToMany', 'ManyToOne', 'ManyToMany'];
|
|
38
|
-
const relationTypeModifier = modifiers.find(m => relationTypes.includes(m));
|
|
62
|
+
const relationTypeModifier = modifiers.find((m) => relationTypes.includes(m));
|
|
39
63
|
const isRelation = baseType === 'relation' || modifiers.includes('relation') || !!relationTypeModifier;
|
|
40
64
|
// Parse relation details
|
|
41
65
|
let relationTarget;
|
|
@@ -45,9 +69,14 @@ function parseFields(fieldsString) {
|
|
|
45
69
|
if (baseType === 'relation') {
|
|
46
70
|
// Format: fieldName:relation:TargetEntity:RelationType:inverseSide
|
|
47
71
|
relationTarget = modifiers[0]; // First modifier is target entity
|
|
48
|
-
relationType = (modifiers.find(m => relationTypes.includes(m)) || 'ManyToOne');
|
|
72
|
+
relationType = (modifiers.find((m) => relationTypes.includes(m)) || 'ManyToOne');
|
|
49
73
|
// Find inverse (anything that's not a relation type or target)
|
|
50
|
-
relationInverse = modifiers.find(m => !relationTypes.includes(m) &&
|
|
74
|
+
relationInverse = modifiers.find((m) => !relationTypes.includes(m) &&
|
|
75
|
+
m !== relationTarget &&
|
|
76
|
+
m !== 'optional' &&
|
|
77
|
+
m !== 'unique' &&
|
|
78
|
+
m !== 'serverOwned' &&
|
|
79
|
+
m !== 'internal');
|
|
51
80
|
}
|
|
52
81
|
else {
|
|
53
82
|
// Legacy format or uuid:relation
|
|
@@ -56,7 +85,7 @@ function parseFields(fieldsString) {
|
|
|
56
85
|
}
|
|
57
86
|
}
|
|
58
87
|
// Find enum values if present
|
|
59
|
-
const enumModifier = modifiers.find(m => m.includes(',') || (baseType === 'enum' && m && !relationTypes.includes(m)));
|
|
88
|
+
const enumModifier = modifiers.find((m) => m.includes(',') || (baseType === 'enum' && m && !relationTypes.includes(m)));
|
|
60
89
|
const enumValues = baseType === 'enum' && enumModifier ? enumModifier.split(',') : undefined;
|
|
61
90
|
// Determine TypeScript type
|
|
62
91
|
let tsType = mapToTsType(baseType, enumValues);
|
|
@@ -77,6 +106,10 @@ function parseFields(fieldsString) {
|
|
|
77
106
|
hasEnum = true;
|
|
78
107
|
if (isRelation)
|
|
79
108
|
hasRelation = true;
|
|
109
|
+
if (isMoney)
|
|
110
|
+
hasMoney = true;
|
|
111
|
+
if (isServerOwned)
|
|
112
|
+
hasServerOwned = true;
|
|
80
113
|
const camelCase = (0, naming_utils_1.toCamelCase)(name);
|
|
81
114
|
const snakeCase = (0, naming_utils_1.toSnakeCase)(name);
|
|
82
115
|
const pascalCase = name.charAt(0).toUpperCase() + (0, naming_utils_1.toCamelCase)(name).slice(1);
|
|
@@ -86,12 +119,18 @@ function parseFields(fieldsString) {
|
|
|
86
119
|
snakeCase,
|
|
87
120
|
pascalCase,
|
|
88
121
|
type: baseType,
|
|
89
|
-
tsType: isRelation
|
|
122
|
+
tsType: isRelation
|
|
123
|
+
? relationType === 'OneToMany' || relationType === 'ManyToMany'
|
|
124
|
+
? `${relationTarget}[]`
|
|
125
|
+
: relationTarget || 'string'
|
|
126
|
+
: tsType,
|
|
90
127
|
dbType,
|
|
91
128
|
prismaType,
|
|
92
129
|
isRequired: !isOptional,
|
|
93
130
|
isOptional,
|
|
94
131
|
isUnique,
|
|
132
|
+
isMoney,
|
|
133
|
+
isServerOwned,
|
|
95
134
|
isArray,
|
|
96
135
|
validators,
|
|
97
136
|
description: generateDescription(name, baseType),
|
|
@@ -103,7 +142,7 @@ function parseFields(fieldsString) {
|
|
|
103
142
|
relationInverse,
|
|
104
143
|
};
|
|
105
144
|
});
|
|
106
|
-
return { fields, hasEmail, hasDate, hasEnum, hasRelation };
|
|
145
|
+
return { fields, hasEmail, hasDate, hasEnum, hasRelation, hasMoney, hasServerOwned };
|
|
107
146
|
}
|
|
108
147
|
function mapToTsType(type, enumValues) {
|
|
109
148
|
const typeMap = {
|
|
@@ -113,6 +152,7 @@ function mapToTsType(type, enumValues) {
|
|
|
113
152
|
integer: 'number',
|
|
114
153
|
float: 'number',
|
|
115
154
|
decimal: 'number',
|
|
155
|
+
money: 'string',
|
|
116
156
|
boolean: 'boolean',
|
|
117
157
|
bool: 'boolean',
|
|
118
158
|
date: 'Date',
|
|
@@ -121,7 +161,7 @@ function mapToTsType(type, enumValues) {
|
|
|
121
161
|
uuid: 'string',
|
|
122
162
|
json: 'Record<string, any>',
|
|
123
163
|
text: 'string',
|
|
124
|
-
enum: enumValues ? enumValues.map(v => `'${v}'`).join(' | ') : 'string',
|
|
164
|
+
enum: enumValues ? enumValues.map((v) => `'${v}'`).join(' | ') : 'string',
|
|
125
165
|
};
|
|
126
166
|
return typeMap[type.toLowerCase()] || 'string';
|
|
127
167
|
}
|
|
@@ -133,6 +173,7 @@ function mapToDbType(type, isArray) {
|
|
|
133
173
|
integer: 'int',
|
|
134
174
|
float: 'float',
|
|
135
175
|
decimal: 'decimal',
|
|
176
|
+
money: 'decimal',
|
|
136
177
|
boolean: 'boolean',
|
|
137
178
|
bool: 'boolean',
|
|
138
179
|
date: 'date',
|
|
@@ -154,6 +195,7 @@ function mapToPrismaType(type, isArray) {
|
|
|
154
195
|
integer: 'Int',
|
|
155
196
|
float: 'Float',
|
|
156
197
|
decimal: 'Decimal',
|
|
198
|
+
money: 'Decimal',
|
|
157
199
|
boolean: 'Boolean',
|
|
158
200
|
bool: 'Boolean',
|
|
159
201
|
date: 'DateTime',
|
|
@@ -167,7 +209,7 @@ function mapToPrismaType(type, isArray) {
|
|
|
167
209
|
const prismaType = typeMap[type.toLowerCase()] || 'String';
|
|
168
210
|
return isArray ? `${prismaType}[]` : prismaType;
|
|
169
211
|
}
|
|
170
|
-
function generateValidators(name, type, isOptional,
|
|
212
|
+
function generateValidators(name, type, isOptional, _isUnique, isArray, enumValues) {
|
|
171
213
|
const validators = [];
|
|
172
214
|
const nameLower = name.toLowerCase();
|
|
173
215
|
if (isOptional) {
|
|
@@ -208,7 +250,9 @@ function generateValidators(name, type, isOptional, isUnique, isArray, enumValue
|
|
|
208
250
|
validators.push('@MinLength(8)');
|
|
209
251
|
validators.push('@MaxLength(128)');
|
|
210
252
|
}
|
|
211
|
-
else if (nameLower.includes('description') ||
|
|
253
|
+
else if (nameLower.includes('description') ||
|
|
254
|
+
nameLower.includes('content') ||
|
|
255
|
+
type.toLowerCase() === 'text') {
|
|
212
256
|
validators.push('@MaxLength(10000)'); // Long text fields
|
|
213
257
|
}
|
|
214
258
|
else if (nameLower.includes('title') || nameLower.includes('subject')) {
|
|
@@ -242,6 +286,11 @@ function generateValidators(name, type, isOptional, isUnique, isArray, enumValue
|
|
|
242
286
|
validators.push('@Min(-1e15)');
|
|
243
287
|
validators.push('@Max(1e15)');
|
|
244
288
|
break;
|
|
289
|
+
case 'money':
|
|
290
|
+
validators.push('@IsString()');
|
|
291
|
+
validators.push("@IsDecimal({ decimal_digits: '0,18', force_decimal: false })");
|
|
292
|
+
validators.push('@MaxLength(64)');
|
|
293
|
+
break;
|
|
245
294
|
case 'boolean':
|
|
246
295
|
case 'bool':
|
|
247
296
|
validators.push('@IsBoolean()');
|
|
@@ -257,7 +306,7 @@ function generateValidators(name, type, isOptional, isUnique, isArray, enumValue
|
|
|
257
306
|
break;
|
|
258
307
|
case 'enum':
|
|
259
308
|
if (enumValues) {
|
|
260
|
-
validators.push(`@IsIn([${enumValues.map(v => `'${v}'`).join(', ')}])`);
|
|
309
|
+
validators.push(`@IsIn([${enumValues.map((v) => `'${v}'`).join(', ')}])`);
|
|
261
310
|
}
|
|
262
311
|
break;
|
|
263
312
|
case 'json':
|
|
@@ -291,10 +340,14 @@ function generateDescription(name, type) {
|
|
|
291
340
|
.replace(/[_-]/g, ' ')
|
|
292
341
|
.trim()
|
|
293
342
|
.toLowerCase();
|
|
294
|
-
return
|
|
343
|
+
return type.toLowerCase() === 'money'
|
|
344
|
+
? `The ${readableName} of the entity as an exact decimal string`
|
|
345
|
+
: `The ${readableName} of the entity`;
|
|
295
346
|
}
|
|
296
347
|
function generateExample(name, type) {
|
|
297
348
|
const lowerName = name.toLowerCase();
|
|
349
|
+
if (type.toLowerCase() === 'money')
|
|
350
|
+
return '1250.00';
|
|
298
351
|
if (lowerName.includes('email'))
|
|
299
352
|
return 'user@example.com';
|
|
300
353
|
if (lowerName.includes('name'))
|
|
@@ -332,22 +385,23 @@ function generateExample(name, type) {
|
|
|
332
385
|
*/
|
|
333
386
|
function generateFieldsTemplateData(fields) {
|
|
334
387
|
const entityProperties = fields
|
|
335
|
-
.map(f => ` public readonly ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
|
|
388
|
+
.map((f) => ` public readonly ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
|
|
336
389
|
.join('\n');
|
|
337
390
|
const entityPropsInterface = fields
|
|
338
|
-
.map(f => ` ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
|
|
391
|
+
.map((f) => ` ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
|
|
339
392
|
.join('\n');
|
|
340
393
|
const dtoProperties = fields
|
|
341
|
-
.
|
|
394
|
+
.filter((field) => !field.isServerOwned)
|
|
395
|
+
.map((f) => {
|
|
342
396
|
const decorators = [
|
|
343
397
|
` @ApiProperty({ description: "${f.description}"${f.example ? `, example: "${f.example}"` : ''} })`,
|
|
344
|
-
...f.validators.map(v => ` ${v}`),
|
|
398
|
+
...f.validators.map((v) => ` ${v}`),
|
|
345
399
|
].join('\n');
|
|
346
400
|
return `${decorators}\n ${f.snakeCase}${f.isOptional ? '?' : ''}: ${f.tsType};`;
|
|
347
401
|
})
|
|
348
402
|
.join('\n\n');
|
|
349
403
|
const ormColumns = fields
|
|
350
|
-
.map(f => {
|
|
404
|
+
.map((f) => {
|
|
351
405
|
if (f.isRelation && f.relationType && f.relationTarget) {
|
|
352
406
|
// Generate relation decorator
|
|
353
407
|
const relationDecorator = generateRelationDecorator(f);
|
|
@@ -365,17 +419,17 @@ function generateFieldsTemplateData(fields) {
|
|
|
365
419
|
})
|
|
366
420
|
.join('\n\n');
|
|
367
421
|
const migrationColumns = fields
|
|
368
|
-
.map(f => {
|
|
422
|
+
.map((f) => {
|
|
423
|
+
const uniqueLine = f.isUnique ? '\n isUnique: true,' : '';
|
|
369
424
|
return ` {
|
|
370
425
|
name: "${f.snakeCase}",
|
|
371
426
|
type: "${f.dbType}",
|
|
372
|
-
isNullable: ${f.isOptional}
|
|
373
|
-
${f.isUnique ? 'isUnique: true,' : ''}
|
|
427
|
+
isNullable: ${f.isOptional},${uniqueLine}
|
|
374
428
|
},`;
|
|
375
429
|
})
|
|
376
430
|
.join('\n');
|
|
377
431
|
const responseProperties = fields
|
|
378
|
-
.map(f => ` @ApiProperty({ description: "${f.description}" })\n @Expose()\n ${f.camelCase}: ${f.tsType};`)
|
|
432
|
+
.map((f) => ` @ApiProperty({ description: "${f.description}" })\n @Expose()\n ${f.camelCase}: ${f.tsType};`)
|
|
379
433
|
.join('\n\n');
|
|
380
434
|
return {
|
|
381
435
|
entityProperties,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.utils.js","sourceRoot":"","sources":["../../src/utils/field.utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field.utils.js","sourceRoot":"","sources":["../../src/utils/field.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const field_utils_1 = require("./field.utils");
|
|
4
|
+
describe('parseFields', () => {
|
|
5
|
+
it('does not regenerate fields already owned by the base entity', () => {
|
|
6
|
+
const result = (0, field_utils_1.parseFields)('name:string isActive:boolean created_at:datetime updatedAt:datetime');
|
|
7
|
+
expect(result.fields.map((field) => field.name)).toEqual(['name']);
|
|
8
|
+
});
|
|
9
|
+
it('keeps business fields while normalizing their generated names', () => {
|
|
10
|
+
const result = (0, field_utils_1.parseFields)('functionalCurrency:string effectiveFrom:date');
|
|
11
|
+
expect(result.fields.map((field) => field.camelCase)).toEqual([
|
|
12
|
+
'functionalCurrency',
|
|
13
|
+
'effectiveFrom',
|
|
14
|
+
]);
|
|
15
|
+
});
|
|
16
|
+
it('models money exactly and marks server-owned fields as internal inputs', () => {
|
|
17
|
+
const result = (0, field_utils_1.parseFields)('amount:money tenantId:uuid:serverOwned organizationId:uuid:internal');
|
|
18
|
+
expect(result.hasMoney).toBe(true);
|
|
19
|
+
expect(result.hasServerOwned).toBe(true);
|
|
20
|
+
expect(result.fields[0]).toMatchObject({
|
|
21
|
+
name: 'amount',
|
|
22
|
+
tsType: 'string',
|
|
23
|
+
dbType: 'decimal',
|
|
24
|
+
prismaType: 'Decimal',
|
|
25
|
+
isMoney: true,
|
|
26
|
+
isServerOwned: false,
|
|
27
|
+
});
|
|
28
|
+
expect(result.fields.slice(1).map((field) => field.isServerOwned)).toEqual([true, true]);
|
|
29
|
+
expect(result.fields[0]?.validators).toContain("@IsDecimal({ decimal_digits: '0,18', force_decimal: false })");
|
|
30
|
+
});
|
|
31
|
+
it('does not emit whitespace-only lines for non-unique migration columns', () => {
|
|
32
|
+
const { fields } = (0, field_utils_1.parseFields)('name:string code:string:unique');
|
|
33
|
+
const migrationColumns = (0, field_utils_1.generateFieldsTemplateData)(fields).migrationColumns;
|
|
34
|
+
expect(migrationColumns).not.toMatch(/^\s+$/m);
|
|
35
|
+
expect(migrationColumns).toContain('isUnique: true');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=field.utils.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.utils.spec.js","sourceRoot":"","sources":["../../src/utils/field.utils.spec.ts"],"names":[],"mappings":";;AAAA,+CAAwE;AAExE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,IAAA,yBAAW,EACxB,qEAAqE,CACtE,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,8CAA8C,CAAC,CAAC;QAE3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,oBAAoB;YACpB,eAAe;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,IAAA,yBAAW,EACxB,qEAAqE,CACtE,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACrC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,SAAS,CAC5C,8DAA8D,CAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,yBAAW,EAAC,gCAAgC,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,IAAA,wCAA0B,EAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC;QAE7E,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -14,7 +14,11 @@ export interface TemplateData {
|
|
|
14
14
|
moduleNameKebab: string;
|
|
15
15
|
moduleNamePascal: string;
|
|
16
16
|
fields?: FieldDefinition[];
|
|
17
|
+
requestFields?: FieldDefinition[];
|
|
18
|
+
serverOwnedFields?: FieldDefinition[];
|
|
17
19
|
hasFields: boolean;
|
|
20
|
+
hasRequestFields: boolean;
|
|
21
|
+
hasServerOwnedFields: boolean;
|
|
18
22
|
entityProperties?: string;
|
|
19
23
|
entityPropsInterface?: string;
|
|
20
24
|
dtoProperties?: string;
|
|
@@ -23,15 +27,47 @@ export interface TemplateData {
|
|
|
23
27
|
responseProperties?: string;
|
|
24
28
|
hasRelations: boolean;
|
|
25
29
|
relationImports?: string;
|
|
30
|
+
orm: 'typeorm' | 'prisma' | 'mikro-orm';
|
|
31
|
+
isPrisma: boolean;
|
|
32
|
+
softDelete: boolean;
|
|
33
|
+
hardDelete: boolean;
|
|
34
|
+
deleteEnabled: boolean;
|
|
26
35
|
}
|
|
27
|
-
export
|
|
36
|
+
export interface TemplateGenerationConfig {
|
|
37
|
+
orm?: 'typeorm' | 'prisma' | 'mikro-orm';
|
|
38
|
+
features?: {
|
|
39
|
+
delete?: boolean;
|
|
40
|
+
softDelete?: boolean;
|
|
41
|
+
hardDelete?: boolean;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface ConfiguredTemplateDataOptions extends TemplateGenerationConfig {
|
|
45
|
+
basePath: string;
|
|
46
|
+
fieldsString?: string;
|
|
47
|
+
}
|
|
48
|
+
export declare function prepareConfiguredTemplateData(entityName: string, moduleName: string, options: ConfiguredTemplateDataOptions): Promise<TemplateData>;
|
|
49
|
+
export declare function prepareTemplateData(entityName: string, moduleName: string, fieldsString?: string, generationConfig?: TemplateGenerationConfig): TemplateData;
|
|
28
50
|
export declare function ensureDir(dirPath: string): Promise<void>;
|
|
29
51
|
export declare function fileExists(filePath: string): Promise<boolean>;
|
|
30
52
|
export declare function writeFile(filePath: string, content: string): Promise<void>;
|
|
31
53
|
export declare function readTemplate(templatePath: string): Promise<string>;
|
|
32
54
|
export declare function compileTemplate(template: string, data: TemplateData): string;
|
|
33
55
|
export declare function generateFromTemplate(templatePath: string, outputPath: string, data: TemplateData, dryRun?: boolean): Promise<string>;
|
|
56
|
+
export type DryRunAction = 'create' | 'update';
|
|
57
|
+
export interface DryRunChange {
|
|
58
|
+
filePath: string;
|
|
59
|
+
action: DryRunAction;
|
|
60
|
+
}
|
|
34
61
|
export declare function resetDryRunFiles(): void;
|
|
35
|
-
export declare function getDryRunFiles():
|
|
36
|
-
export declare function addDryRunFile(filePath: string): void;
|
|
62
|
+
export declare function getDryRunFiles(): DryRunChange[];
|
|
63
|
+
export declare function addDryRunFile(filePath: string, action?: DryRunAction): void;
|
|
64
|
+
export declare function writeGeneratedFile(filePath: string, content: string, dryRun?: boolean): Promise<void>;
|
|
65
|
+
export interface BarrelFileUpdate {
|
|
66
|
+
exports?: string[];
|
|
67
|
+
imports?: string[];
|
|
68
|
+
arrayName?: string;
|
|
69
|
+
arrayItems?: string[];
|
|
70
|
+
dryRun?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export declare function updateBarrelFile(filePath: string, update: BarrelFileUpdate): Promise<void>;
|
|
37
73
|
export declare function getModulePath(basePath: string, moduleName: string): string;
|