@veloxts/cli 0.4.14 → 0.6.23
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 +2 -48
- package/dist/cli.d.ts +5 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +71 -7
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/introspect.d.ts +16 -0
- package/dist/commands/introspect.d.ts.map +1 -0
- package/dist/commands/introspect.js +559 -0
- package/dist/commands/introspect.js.map +1 -0
- package/dist/commands/make.d.ts.map +1 -1
- package/dist/commands/make.js +18 -8
- package/dist/commands/make.js.map +1 -1
- package/dist/commands/procedures.d.ts.map +1 -1
- package/dist/commands/procedures.js +16 -0
- package/dist/commands/procedures.js.map +1 -1
- package/dist/dev/error-parser.d.ts.map +1 -1
- package/dist/dev/error-parser.js +24 -8
- package/dist/dev/error-parser.js.map +1 -1
- package/dist/dev/hmr-runner.d.ts.map +1 -1
- package/dist/dev/hmr-runner.js +6 -1
- package/dist/dev/hmr-runner.js.map +1 -1
- package/dist/dev/index.d.ts +3 -3
- package/dist/dev/index.d.ts.map +1 -1
- package/dist/dev/index.js +3 -3
- package/dist/dev/index.js.map +1 -1
- package/dist/dev/reload-reporter.d.ts +2 -2
- package/dist/dev/reload-reporter.d.ts.map +1 -1
- package/dist/dev/reload-reporter.js +2 -2
- package/dist/dev/reload-reporter.js.map +1 -1
- package/dist/errors/catalog.d.ts +48 -0
- package/dist/errors/catalog.d.ts.map +1 -0
- package/dist/errors/catalog.js +421 -0
- package/dist/errors/catalog.js.map +1 -0
- package/dist/errors/index.d.ts +26 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +28 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/velox-error.d.ts +122 -0
- package/dist/errors/velox-error.d.ts.map +1 -0
- package/dist/errors/velox-error.js +216 -0
- package/dist/errors/velox-error.js.map +1 -0
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +26 -0
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/fields/__tests__/helpers.d.ts +66 -0
- package/dist/generators/fields/__tests__/helpers.d.ts.map +1 -0
- package/dist/generators/fields/__tests__/helpers.js +142 -0
- package/dist/generators/fields/__tests__/helpers.js.map +1 -0
- package/dist/generators/fields/actions.d.ts +58 -0
- package/dist/generators/fields/actions.d.ts.map +1 -0
- package/dist/generators/fields/actions.js +230 -0
- package/dist/generators/fields/actions.js.map +1 -0
- package/dist/generators/fields/display.d.ts +28 -0
- package/dist/generators/fields/display.d.ts.map +1 -0
- package/dist/generators/fields/display.js +214 -0
- package/dist/generators/fields/display.js.map +1 -0
- package/dist/generators/fields/index.d.ts +12 -0
- package/dist/generators/fields/index.d.ts.map +1 -0
- package/dist/generators/fields/index.js +12 -0
- package/dist/generators/fields/index.js.map +1 -0
- package/dist/generators/fields/prompts.d.ts +31 -0
- package/dist/generators/fields/prompts.d.ts.map +1 -0
- package/dist/generators/fields/prompts.js +366 -0
- package/dist/generators/fields/prompts.js.map +1 -0
- package/dist/generators/fields/templates.d.ts +49 -0
- package/dist/generators/fields/templates.d.ts.map +1 -0
- package/dist/generators/fields/templates.js +230 -0
- package/dist/generators/fields/templates.js.map +1 -0
- package/dist/generators/fields/types.d.ts +95 -0
- package/dist/generators/fields/types.d.ts.map +1 -0
- package/dist/generators/fields/types.js +150 -0
- package/dist/generators/fields/types.js.map +1 -0
- package/dist/generators/generators/action.d.ts +37 -0
- package/dist/generators/generators/action.d.ts.map +1 -0
- package/dist/generators/generators/action.js +109 -0
- package/dist/generators/generators/action.js.map +1 -0
- package/dist/generators/generators/exception.d.ts +38 -0
- package/dist/generators/generators/exception.d.ts.map +1 -0
- package/dist/generators/generators/exception.js +109 -0
- package/dist/generators/generators/exception.js.map +1 -0
- package/dist/generators/generators/guard.d.ts +38 -0
- package/dist/generators/generators/guard.d.ts.map +1 -0
- package/dist/generators/generators/guard.js +109 -0
- package/dist/generators/generators/guard.js.map +1 -0
- package/dist/generators/generators/index.d.ts +8 -0
- package/dist/generators/generators/index.d.ts.map +1 -1
- package/dist/generators/generators/index.js +27 -0
- package/dist/generators/generators/index.js.map +1 -1
- package/dist/generators/generators/layout.d.ts +36 -0
- package/dist/generators/generators/layout.d.ts.map +1 -0
- package/dist/generators/generators/layout.js +111 -0
- package/dist/generators/generators/layout.js.map +1 -0
- package/dist/generators/generators/middleware.d.ts +38 -0
- package/dist/generators/generators/middleware.d.ts.map +1 -0
- package/dist/generators/generators/middleware.js +109 -0
- package/dist/generators/generators/middleware.js.map +1 -0
- package/dist/generators/generators/model.d.ts +16 -4
- package/dist/generators/generators/model.d.ts.map +1 -1
- package/dist/generators/generators/model.js +88 -7
- package/dist/generators/generators/model.js.map +1 -1
- package/dist/generators/generators/page.d.ts +36 -0
- package/dist/generators/generators/page.d.ts.map +1 -0
- package/dist/generators/generators/page.js +112 -0
- package/dist/generators/generators/page.js.map +1 -0
- package/dist/generators/generators/policy.d.ts +37 -0
- package/dist/generators/generators/policy.d.ts.map +1 -0
- package/dist/generators/generators/policy.js +100 -0
- package/dist/generators/generators/policy.js.map +1 -0
- package/dist/generators/generators/resource.d.ts +42 -4
- package/dist/generators/generators/resource.d.ts.map +1 -1
- package/dist/generators/generators/resource.js +450 -9
- package/dist/generators/generators/resource.js.map +1 -1
- package/dist/generators/generators/service.d.ts +38 -0
- package/dist/generators/generators/service.d.ts.map +1 -0
- package/dist/generators/generators/service.js +109 -0
- package/dist/generators/generators/service.js.map +1 -0
- package/dist/generators/registry.d.ts.map +1 -1
- package/dist/generators/registry.js +10 -1
- package/dist/generators/registry.js.map +1 -1
- package/dist/generators/templates/action.d.ts +28 -0
- package/dist/generators/templates/action.d.ts.map +1 -0
- package/dist/generators/templates/action.js +359 -0
- package/dist/generators/templates/action.js.map +1 -0
- package/dist/generators/templates/exception.d.ts +26 -0
- package/dist/generators/templates/exception.d.ts.map +1 -0
- package/dist/generators/templates/exception.js +671 -0
- package/dist/generators/templates/exception.js.map +1 -0
- package/dist/generators/templates/guard.d.ts +26 -0
- package/dist/generators/templates/guard.d.ts.map +1 -0
- package/dist/generators/templates/guard.js +555 -0
- package/dist/generators/templates/guard.js.map +1 -0
- package/dist/generators/templates/layout.d.ts +28 -0
- package/dist/generators/templates/layout.d.ts.map +1 -0
- package/dist/generators/templates/layout.js +147 -0
- package/dist/generators/templates/layout.js.map +1 -0
- package/dist/generators/templates/middleware.d.ts +26 -0
- package/dist/generators/templates/middleware.d.ts.map +1 -0
- package/dist/generators/templates/middleware.js +411 -0
- package/dist/generators/templates/middleware.js.map +1 -0
- package/dist/generators/templates/model.d.ts +3 -0
- package/dist/generators/templates/model.d.ts.map +1 -1
- package/dist/generators/templates/model.js +183 -28
- package/dist/generators/templates/model.js.map +1 -1
- package/dist/generators/templates/page.d.ts +36 -0
- package/dist/generators/templates/page.d.ts.map +1 -0
- package/dist/generators/templates/page.js +147 -0
- package/dist/generators/templates/page.js.map +1 -0
- package/dist/generators/templates/policy.d.ts +24 -0
- package/dist/generators/templates/policy.d.ts.map +1 -0
- package/dist/generators/templates/policy.js +499 -0
- package/dist/generators/templates/policy.js.map +1 -0
- package/dist/generators/templates/resource.d.ts +65 -0
- package/dist/generators/templates/resource.d.ts.map +1 -1
- package/dist/generators/templates/resource.js +228 -43
- package/dist/generators/templates/resource.js.map +1 -1
- package/dist/generators/templates/service.d.ts +26 -0
- package/dist/generators/templates/service.d.ts.map +1 -0
- package/dist/generators/templates/service.js +511 -0
- package/dist/generators/templates/service.js.map +1 -0
- package/dist/generators/types.d.ts +26 -14
- package/dist/generators/types.d.ts.map +1 -1
- package/dist/generators/types.js +8 -25
- package/dist/generators/types.js.map +1 -1
- package/dist/generators/utils/ast-helpers.d.ts +147 -0
- package/dist/generators/utils/ast-helpers.d.ts.map +1 -0
- package/dist/generators/utils/ast-helpers.js +350 -0
- package/dist/generators/utils/ast-helpers.js.map +1 -0
- package/dist/generators/utils/prisma-migration.d.ts +59 -0
- package/dist/generators/utils/prisma-migration.d.ts.map +1 -0
- package/dist/generators/utils/prisma-migration.js +161 -0
- package/dist/generators/utils/prisma-migration.js.map +1 -0
- package/dist/generators/utils/prisma-schema.d.ts +97 -0
- package/dist/generators/utils/prisma-schema.d.ts.map +1 -0
- package/dist/generators/utils/prisma-schema.js +235 -0
- package/dist/generators/utils/prisma-schema.js.map +1 -0
- package/dist/generators/utils/router-integration.d.ts +70 -0
- package/dist/generators/utils/router-integration.d.ts.map +1 -0
- package/dist/generators/utils/router-integration.js +305 -0
- package/dist/generators/utils/router-integration.js.map +1 -0
- package/dist/generators/utils/snapshot.d.ts +93 -0
- package/dist/generators/utils/snapshot.d.ts.map +1 -0
- package/dist/generators/utils/snapshot.js +178 -0
- package/dist/generators/utils/snapshot.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/seeding/errors.d.ts +11 -24
- package/dist/seeding/errors.d.ts.map +1 -1
- package/dist/seeding/errors.js +11 -50
- package/dist/seeding/errors.js.map +1 -1
- package/dist/utils/paths.d.ts +19 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +45 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/schema-patterns.d.ts +26 -0
- package/dist/utils/schema-patterns.d.ts.map +1 -0
- package/dist/utils/schema-patterns.js +40 -0
- package/dist/utils/schema-patterns.js.map +1 -0
- package/package.json +12 -10
|
@@ -4,12 +4,133 @@
|
|
|
4
4
|
* Generates a complete resource with model, schema, procedures, and tests.
|
|
5
5
|
* This is the "full stack" generator for quickly scaffolding new entities.
|
|
6
6
|
*/
|
|
7
|
+
import { FIELD_TYPES } from '../fields/types.js';
|
|
7
8
|
// ============================================================================
|
|
8
|
-
//
|
|
9
|
+
// Field Conversion Helpers
|
|
9
10
|
// ============================================================================
|
|
10
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Get field type info by type
|
|
13
|
+
*/
|
|
14
|
+
export function getFieldTypeInfo(type) {
|
|
15
|
+
return FIELD_TYPES.find((t) => t.type === type);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Convert a field definition to Prisma field line
|
|
19
|
+
*
|
|
20
|
+
* @param field - Field definition to convert
|
|
21
|
+
* @param database - Optional database type for native type modifiers (default: 'sqlite')
|
|
22
|
+
*/
|
|
23
|
+
export function fieldToPrisma(field, database = 'sqlite') {
|
|
24
|
+
const typeInfo = getFieldTypeInfo(field.type);
|
|
25
|
+
let prismaType;
|
|
26
|
+
// Handle enum type specially
|
|
27
|
+
if (field.type === 'enum' && field.enumDef) {
|
|
28
|
+
prismaType = field.enumDef.name;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
prismaType = typeInfo?.prismaType ?? 'String';
|
|
32
|
+
}
|
|
33
|
+
// Build modifiers
|
|
34
|
+
const modifiers = [];
|
|
35
|
+
// Add @db.Text for long text fields (only for PostgreSQL and MySQL, not SQLite)
|
|
36
|
+
if (field.type === 'text' && database !== 'sqlite') {
|
|
37
|
+
modifiers.push('@db.Text');
|
|
38
|
+
}
|
|
39
|
+
// Optional (nullable)
|
|
40
|
+
if (field.attributes.optional) {
|
|
41
|
+
prismaType += '?';
|
|
42
|
+
}
|
|
43
|
+
// Unique constraint
|
|
44
|
+
if (field.attributes.unique) {
|
|
45
|
+
modifiers.push('@unique');
|
|
46
|
+
}
|
|
47
|
+
// Default value
|
|
48
|
+
if (field.attributes.hasDefault && field.attributes.defaultValue !== undefined) {
|
|
49
|
+
const defaultVal = formatPrismaDefault(field.type, field.attributes.defaultValue);
|
|
50
|
+
modifiers.push(`@default(${defaultVal})`);
|
|
51
|
+
}
|
|
52
|
+
const modifierStr = modifiers.length > 0 ? ` ${modifiers.join(' ')}` : '';
|
|
53
|
+
return ` ${field.name} ${prismaType}${modifierStr}`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Format default value for Prisma
|
|
57
|
+
*
|
|
58
|
+
* Different types require different formatting:
|
|
59
|
+
* - Strings: quoted ("value")
|
|
60
|
+
* - Numbers: unquoted (123, 3.14)
|
|
61
|
+
* - Booleans: unquoted (true, false)
|
|
62
|
+
* - Enums: unquoted (DRAFT, ACTIVE)
|
|
63
|
+
* - DateTime: function call (now())
|
|
64
|
+
* - JSON: not supported for defaults
|
|
65
|
+
*/
|
|
66
|
+
export function formatPrismaDefault(type, value) {
|
|
67
|
+
switch (type) {
|
|
68
|
+
case 'string':
|
|
69
|
+
case 'text':
|
|
70
|
+
return `"${value}"`;
|
|
71
|
+
case 'boolean':
|
|
72
|
+
case 'int':
|
|
73
|
+
case 'float':
|
|
74
|
+
return value; // Unquoted: true, false, 123, 3.14
|
|
75
|
+
case 'enum':
|
|
76
|
+
return value; // Unquoted: DRAFT, ACTIVE, PENDING
|
|
77
|
+
case 'datetime':
|
|
78
|
+
// Support special Prisma functions or quoted string values
|
|
79
|
+
if (value === 'now()' || value === 'now') {
|
|
80
|
+
return 'now()';
|
|
81
|
+
}
|
|
82
|
+
return `"${value}"`;
|
|
83
|
+
case 'json':
|
|
84
|
+
// JSON defaults are complex - return as-is (user must format correctly)
|
|
85
|
+
return value;
|
|
86
|
+
default:
|
|
87
|
+
return `"${value}"`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Convert a field definition to Zod schema field
|
|
92
|
+
*/
|
|
93
|
+
export function fieldToZod(field) {
|
|
94
|
+
const typeInfo = getFieldTypeInfo(field.type);
|
|
95
|
+
let zodType;
|
|
96
|
+
// Handle enum type specially
|
|
97
|
+
if (field.type === 'enum' && field.enumDef) {
|
|
98
|
+
const values = field.enumDef.values.map((v) => `'${v}'`).join(', ');
|
|
99
|
+
zodType = `z.enum([${values}])`;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
zodType = typeInfo?.zodSchema ?? 'z.string()';
|
|
103
|
+
}
|
|
104
|
+
// Optional (nullable)
|
|
105
|
+
if (field.attributes.optional) {
|
|
106
|
+
zodType += '.nullable()';
|
|
107
|
+
}
|
|
108
|
+
return ` ${field.name}: ${zodType},`;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Generate Prisma enum definitions
|
|
112
|
+
*/
|
|
113
|
+
export function generatePrismaEnums(fields) {
|
|
114
|
+
const enumFields = fields.filter((f) => f.type === 'enum' && f.enumDef);
|
|
115
|
+
if (enumFields.length === 0)
|
|
116
|
+
return '';
|
|
117
|
+
const enums = enumFields.map((f) => {
|
|
118
|
+
const enumDef = f.enumDef;
|
|
119
|
+
if (!enumDef)
|
|
120
|
+
return '';
|
|
121
|
+
const values = enumDef.values.map((v) => ` ${v}`).join('\n');
|
|
122
|
+
return `enum ${enumDef.name} {\n${values}\n}`;
|
|
123
|
+
});
|
|
124
|
+
return `\n${enums.join('\n\n')}\n`;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Generate injectable Prisma content (model + enums without comments)
|
|
128
|
+
*
|
|
129
|
+
* This content can be directly injected into schema.prisma
|
|
130
|
+
*/
|
|
131
|
+
export function generateInjectablePrismaContent(entity, options, database = 'sqlite') {
|
|
11
132
|
const { pascal, camel } = entity;
|
|
12
|
-
const { softDelete, timestamps } = options;
|
|
133
|
+
const { softDelete, timestamps, fields = [] } = options;
|
|
13
134
|
const timestampFields = timestamps
|
|
14
135
|
? `
|
|
15
136
|
createdAt DateTime @default(now())
|
|
@@ -19,37 +140,73 @@ function generatePrismaModel(entity, options) {
|
|
|
19
140
|
? `
|
|
20
141
|
deletedAt DateTime?`
|
|
21
142
|
: '';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
143
|
+
// Generate custom fields
|
|
144
|
+
let customFields;
|
|
145
|
+
if (fields.length > 0) {
|
|
146
|
+
customFields = `\n${fields.map((f) => fieldToPrisma(f, database)).join('\n')}`;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Placeholder comment for when no fields are defined
|
|
150
|
+
customFields = `
|
|
151
|
+
// TODO: Add your fields here`;
|
|
152
|
+
}
|
|
153
|
+
// Generate model content (without header comment)
|
|
154
|
+
const modelContent = `model ${pascal} {
|
|
25
155
|
id String @id @default(uuid())
|
|
26
|
-
|
|
27
|
-
// TODO: Add your fields here
|
|
28
|
-
// name String
|
|
29
|
-
// email String @unique
|
|
30
|
-
// status Status @default(ACTIVE)
|
|
156
|
+
${customFields}
|
|
31
157
|
${timestampFields}${softDeleteField}
|
|
32
158
|
|
|
33
|
-
// Relations
|
|
34
|
-
// posts Post[]
|
|
35
|
-
|
|
36
159
|
@@map("${camel}s")
|
|
160
|
+
}`;
|
|
161
|
+
// Generate structured enum definitions
|
|
162
|
+
const enums = [];
|
|
163
|
+
if (fields.length > 0) {
|
|
164
|
+
const enumFields = fields.filter((f) => f.type === 'enum' && f.enumDef);
|
|
165
|
+
for (const field of enumFields) {
|
|
166
|
+
const enumDef = field.enumDef;
|
|
167
|
+
if (enumDef) {
|
|
168
|
+
const values = enumDef.values.map((v) => ` ${v}`).join('\n');
|
|
169
|
+
enums.push({
|
|
170
|
+
name: enumDef.name,
|
|
171
|
+
content: `enum ${enumDef.name} {\n${values}\n}`,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
modelContent,
|
|
178
|
+
modelName: pascal,
|
|
179
|
+
enums,
|
|
180
|
+
};
|
|
37
181
|
}
|
|
38
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Generate Prisma model as a standalone file (with instructions header)
|
|
184
|
+
*/
|
|
185
|
+
function generatePrismaModel(entity, options, database = 'sqlite') {
|
|
186
|
+
const { fields = [] } = options;
|
|
187
|
+
const injectable = generateInjectablePrismaContent(entity, options, database);
|
|
188
|
+
const enumComment = fields.length === 0
|
|
189
|
+
? `
|
|
39
190
|
// Optional: Add enum if needed
|
|
40
191
|
// enum Status {
|
|
41
192
|
// ACTIVE
|
|
42
193
|
// INACTIVE
|
|
43
194
|
// PENDING
|
|
44
195
|
// }
|
|
45
|
-
|
|
196
|
+
`
|
|
197
|
+
: '';
|
|
198
|
+
const enumSection = injectable.enums.length > 0 ? `\n${injectable.enums.map((e) => e.content).join('\n\n')}\n` : '';
|
|
199
|
+
return `// Add this model to your prisma/schema.prisma file
|
|
200
|
+
${enumSection}
|
|
201
|
+
${injectable.modelContent}
|
|
202
|
+
${enumComment}`;
|
|
46
203
|
}
|
|
47
204
|
// ============================================================================
|
|
48
205
|
// Zod Schema Template
|
|
49
206
|
// ============================================================================
|
|
50
207
|
function generateZodSchema(entity, options) {
|
|
51
208
|
const { pascal, camel } = entity;
|
|
52
|
-
const { softDelete, timestamps, crud } = options;
|
|
209
|
+
const { softDelete, timestamps, crud, fields = [] } = options;
|
|
53
210
|
const timestampFields = timestamps
|
|
54
211
|
? `
|
|
55
212
|
createdAt: z.date(),
|
|
@@ -59,6 +216,18 @@ function generateZodSchema(entity, options) {
|
|
|
59
216
|
? `
|
|
60
217
|
deletedAt: z.date().nullable(),`
|
|
61
218
|
: '';
|
|
219
|
+
// Generate custom fields or placeholder
|
|
220
|
+
let customFields;
|
|
221
|
+
if (fields.length > 0) {
|
|
222
|
+
customFields = `\n${fields.map(fieldToZod).join('\n')}`;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
customFields = `
|
|
226
|
+
// TODO: Add your fields here
|
|
227
|
+
// name: z.string().min(1).max(255),
|
|
228
|
+
// email: z.string().email(),
|
|
229
|
+
// status: z.enum(['ACTIVE', 'INACTIVE', 'PENDING']),`;
|
|
230
|
+
}
|
|
62
231
|
// Fields to omit for create/update
|
|
63
232
|
const omitFields = ['id'];
|
|
64
233
|
if (timestamps)
|
|
@@ -158,11 +327,7 @@ import { z } from 'zod';
|
|
|
158
327
|
* ${pascal} - Full entity schema
|
|
159
328
|
*/
|
|
160
329
|
export const ${camel}Schema = z.object({
|
|
161
|
-
id: z.string().uuid()
|
|
162
|
-
// TODO: Add your fields here
|
|
163
|
-
// name: z.string().min(1).max(255),
|
|
164
|
-
// email: z.string().email(),
|
|
165
|
-
// status: z.enum(['ACTIVE', 'INACTIVE', 'PENDING']),${timestampFields}${softDeleteField}
|
|
330
|
+
id: z.string().uuid(),${customFields}${timestampFields}${softDeleteField}
|
|
166
331
|
});
|
|
167
332
|
|
|
168
333
|
export type ${pascal} = z.infer<typeof ${camel}Schema>;
|
|
@@ -183,7 +348,7 @@ function generateProcedure(entity, options) {
|
|
|
183
348
|
* API procedures for ${pascal} operations.
|
|
184
349
|
*/
|
|
185
350
|
|
|
186
|
-
import {
|
|
351
|
+
import { defineProcedures, procedure } from '@veloxts/velox';
|
|
187
352
|
import { ${camel}Schema, ${camel}IdParamSchema } from '../schemas/${kebab}.schema.js';
|
|
188
353
|
|
|
189
354
|
export const ${camel}Procedures = defineProcedures('${kebab}s', {
|
|
@@ -236,8 +401,7 @@ export const ${camel}Procedures = defineProcedures('${kebab}s', {
|
|
|
236
401
|
* CRUD procedures for ${pascal} entity.
|
|
237
402
|
*/
|
|
238
403
|
|
|
239
|
-
import { z } from '
|
|
240
|
-
import { procedure, defineProcedures } from '@veloxts/router';
|
|
404
|
+
import { defineProcedures, procedure, z } from '@veloxts/velox';
|
|
241
405
|
import {
|
|
242
406
|
${camel}Schema,
|
|
243
407
|
${camel}IdParamSchema,
|
|
@@ -464,12 +628,12 @@ describe('${pascal} Procedures', () => {
|
|
|
464
628
|
*/
|
|
465
629
|
export function generateResourceFiles(ctx) {
|
|
466
630
|
const files = [];
|
|
467
|
-
const { entity, options } = ctx;
|
|
631
|
+
const { entity, options, project } = ctx;
|
|
468
632
|
// Prisma model (added to models folder for reference)
|
|
469
633
|
if (!options.skipModel) {
|
|
470
634
|
files.push({
|
|
471
635
|
path: `src/models/${entity.kebab}.prisma`,
|
|
472
|
-
content: generatePrismaModel(entity, options),
|
|
636
|
+
content: generatePrismaModel(entity, options, project.database),
|
|
473
637
|
});
|
|
474
638
|
}
|
|
475
639
|
// Zod schema
|
|
@@ -501,50 +665,71 @@ export function generateResourceFiles(ctx) {
|
|
|
501
665
|
export function getResourceInstructions(entityName, options) {
|
|
502
666
|
const steps = [];
|
|
503
667
|
let stepNum = 1;
|
|
668
|
+
const lowerName = entityName.toLowerCase();
|
|
669
|
+
const camelName = entityName.charAt(0).toLowerCase() + entityName.slice(1);
|
|
670
|
+
const hasFields = options.fields && options.fields.length > 0;
|
|
671
|
+
const fieldCount = options.fields?.length ?? 0;
|
|
672
|
+
// Step 1: Prisma model (always needed unless skipped)
|
|
504
673
|
if (!options.skipModel) {
|
|
505
|
-
|
|
674
|
+
const fieldInfo = hasFields
|
|
675
|
+
? ` (${fieldCount} field${fieldCount === 1 ? '' : 's'} defined)`
|
|
676
|
+
: '';
|
|
677
|
+
steps.push(`${stepNum}. Add the Prisma model to your schema${fieldInfo}:
|
|
506
678
|
|
|
507
|
-
Copy the contents of src/models/${
|
|
679
|
+
Copy the contents of src/models/${lowerName}.prisma
|
|
508
680
|
into your prisma/schema.prisma file.
|
|
509
681
|
|
|
510
682
|
Then run:
|
|
511
683
|
npx prisma db push
|
|
512
684
|
# or
|
|
513
|
-
npx prisma migrate dev --name add_${
|
|
685
|
+
npx prisma migrate dev --name add_${lowerName}`);
|
|
514
686
|
stepNum++;
|
|
515
687
|
}
|
|
688
|
+
// Step 2: Zod schema - different message based on whether fields were defined
|
|
516
689
|
if (!options.skipSchema) {
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
690
|
+
if (hasFields) {
|
|
691
|
+
steps.push(`${stepNum}. Review the Zod validation (optional):
|
|
692
|
+
|
|
693
|
+
The schema at src/schemas/${lowerName}.schema.ts
|
|
694
|
+
already includes your ${fieldCount} field${fieldCount === 1 ? '' : 's'}.
|
|
695
|
+
Customize validation rules if needed (min/max, patterns, etc.)`);
|
|
696
|
+
}
|
|
697
|
+
else {
|
|
698
|
+
steps.push(`${stepNum}. Add fields to the Zod schema:
|
|
699
|
+
|
|
700
|
+
Edit src/schemas/${lowerName}.schema.ts
|
|
701
|
+
to define your validation schema.`);
|
|
702
|
+
}
|
|
521
703
|
stepNum++;
|
|
522
704
|
}
|
|
705
|
+
// Step 3: Register procedures
|
|
523
706
|
if (!options.skipProcedure) {
|
|
524
707
|
steps.push(`${stepNum}. Register the procedures in your router:
|
|
525
708
|
|
|
526
|
-
import { ${
|
|
709
|
+
import { ${camelName}Procedures } from './procedures/${lowerName}.js';
|
|
527
710
|
|
|
528
711
|
// Add to your router
|
|
529
712
|
const router = createRouter({
|
|
530
|
-
${
|
|
713
|
+
${camelName}: ${camelName}Procedures,
|
|
531
714
|
});`);
|
|
532
715
|
stepNum++;
|
|
533
716
|
}
|
|
717
|
+
// Step 4: Run tests (only if tests were generated)
|
|
534
718
|
if (options.withTests) {
|
|
535
719
|
steps.push(`${stepNum}. Run the tests:
|
|
536
720
|
|
|
537
|
-
pnpm test src/procedures/__tests__/${
|
|
721
|
+
pnpm test src/procedures/__tests__/${lowerName}.test.ts`);
|
|
538
722
|
stepNum++;
|
|
539
723
|
}
|
|
724
|
+
// Final step: API endpoints summary
|
|
540
725
|
steps.push(`${stepNum}. Your ${entityName} API is ready:
|
|
541
726
|
|
|
542
|
-
GET /api/${
|
|
543
|
-
GET /api/${
|
|
544
|
-
POST /api/${
|
|
545
|
-
PUT /api/${
|
|
546
|
-
PATCH /api/${
|
|
547
|
-
DELETE /api/${
|
|
727
|
+
GET /api/${lowerName}s - List all
|
|
728
|
+
GET /api/${lowerName}s/:id - Get by ID
|
|
729
|
+
POST /api/${lowerName}s - Create new
|
|
730
|
+
PUT /api/${lowerName}s/:id - Full update
|
|
731
|
+
PATCH /api/${lowerName}s/:id - Partial update
|
|
732
|
+
DELETE /api/${lowerName}s/:id - Delete`);
|
|
548
733
|
return `\n ${steps.join('\n\n ')}`;
|
|
549
734
|
}
|
|
550
735
|
//# sourceMappingURL=resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/generators/templates/resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/generators/templates/resource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA4BjD,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAClD,CAAC;AAKD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAsB,EAAE,WAAyB,QAAQ;IACrF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,UAAkB,CAAC;IAEvB,6BAA6B;IAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3C,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,QAAQ,EAAE,UAAU,IAAI,QAAQ,CAAC;IAChD,CAAC;IAED,kBAAkB;IAClB,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,gFAAgF;IAChF,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,sBAAsB;IACtB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9B,UAAU,IAAI,GAAG,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAClF,SAAS,CAAC,IAAI,CAAC,YAAY,UAAU,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO,KAAK,KAAK,CAAC,IAAI,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;AACvD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA6B,EAAE,KAAa;IAC9E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAO,IAAI,KAAK,GAAG,CAAC;QACtB,KAAK,SAAS,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,CAAC,mCAAmC;QACnD,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,CAAC,mCAAmC;QACnD,KAAK,UAAU;YACb,2DAA2D;YAC3D,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,KAAK,GAAG,CAAC;QACtB,KAAK,MAAM;YACT,wEAAwE;YACxE,OAAO,KAAK,CAAC;QACf;YACE,OAAO,IAAI,KAAK,GAAG,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAe,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,GAAG,WAAW,MAAM,IAAI,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,QAAQ,EAAE,SAAS,IAAI,YAAY,CAAC;IAChD,CAAC;IAED,sBAAsB;IACtB,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,aAAa,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACxE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO,QAAQ,OAAO,CAAC,IAAI,OAAO,MAAM,KAAK,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,CAAC;AA4BD;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAyC,EACzC,OAAwB,EACxB,WAAyB,QAAQ;IAEjC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC;;gCAE0B;QAC5B,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC;sBACgB;QAClB,CAAC,CAAC,EAAE,CAAC;IAEP,yBAAyB;IACzB,IAAI,YAAoB,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,YAAY,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,YAAY,GAAG;gCACa,CAAC;IAC/B,CAAC;IAED,kDAAkD;IAClD,MAAM,YAAY,GAAG,SAAS,MAAM;;EAEpC,YAAY;EACZ,eAAe,GAAG,eAAe;;WAExB,KAAK;EACd,CAAC;IAED,uCAAuC;IACvC,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,QAAQ,OAAO,CAAC,IAAI,OAAO,MAAM,KAAK;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,YAAY;QACZ,SAAS,EAAE,MAAM;QACjB,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,MAAyC,EACzC,OAAwB,EACxB,WAAyB,QAAQ;IAEjC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,+BAA+B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE9E,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC;;;;;;;CAOP;QACK,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,WAAW,GACf,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAElG,OAAO;EACP,WAAW;EACX,UAAU,CAAC,YAAY;EACvB,WAAW,EAAE,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,SAAS,iBAAiB,CACxB,MAAyC,EACzC,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC;;uBAEiB;QACnB,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC;kCAC4B;QAC9B,CAAC,CAAC,EAAE,CAAC;IAEP,wCAAwC;IACxC,IAAI,YAAoB,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,YAAY,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,YAAY,GAAG;;;;wDAIqC,CAAC;IACvD,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,UAAU;QAAE,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,UAAU;QAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,IAAI;QACtB,CAAC,CAAC;;;;;;;WAOK,MAAM,4BAA4B,KAAK;;qBAE7B,MAAM,iBAAiB,KAAK;IAC7C,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;oBAGjC,MAAM,gCAAgC,MAAM;;;WAGrD,MAAM;;qBAEI,MAAM,iBAAiB,KAAK;IAC7C,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;;oBAGjC,MAAM,gCAAgC,MAAM;;;UAGtD,MAAM;;oBAEI,MAAM,uBAAuB,MAAM;;mBAEpC,MAAM,+BAA+B,MAAM;;;;;;;KAOzD,MAAM;;eAEI,KAAK;;;;cAIN,MAAM,4BAA4B,KAAK;;;KAGhD,MAAM;;eAEI,KAAK;;;;;;;;cAQN,MAAM,8BAA8B,KAAK;;;;;;;KAOlD,MAAM;;eAEI,KAAK;kBACF,KAAK;;;;;;;;;cAST,MAAM,iCAAiC,KAAK,sBAAsB;QAC5E,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;KACJ,MAAM;;gCAEqB,MAAM;;;;;;;;;;KAUjC,MAAM;;eAEI,KAAK;0BACM,YAAY,GAAG,eAAe,GAAG,eAAe;;;cAG5D,MAAM,qBAAqB,KAAK;EAC5C,WAAW;CACZ,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAS,iBAAiB,CACxB,MAAwD,EACxD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,gCAAgC;QAChC,OAAO;KACN,MAAM;;wBAEa,MAAM;;;;WAInB,KAAK,WAAW,KAAK,oCAAoC,KAAK;;eAE1D,KAAK,kCAAkC,KAAK;;oBAEvC,KAAK;gBACT,KAAK;;OAEd,MAAM;aACA,KAAK;cACJ,KAAK;;sBAEG,KAAK;;;;;CAK1B,CAAC;IACA,CAAC;IAED,kBAAkB;IAClB,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,cAAc,GAAG,SAAS;QAC9B,CAAC,CAAC;mCAC6B,KAAK,qBAAqB,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;;;;gBAIhF,KAAK;;;;;;;SAOZ;QACL,CAAC,CAAC;eACS,KAAK,IAAI,CAAC;IAEvB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;IAExF,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC;sBACgB,KAAK;;;UAGjB;QACN,CAAC,CAAC,iBAAiB,KAAK;;UAElB,CAAC;IAET,OAAO;KACJ,MAAM;;yBAEc,MAAM;;;;;IAK3B,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,yBAAyB,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM;UAC3D,MAAM;SACP,MAAM;qBACM,KAAK;;eAEX,KAAK,kCAAkC,KAAK;;oBAEvC,KAAK;gBACT,KAAK;;OAEd,MAAM;aACA,KAAK;cACJ,KAAK;;sBAEG,KAAK;+BACI,eAAe;;;;;gBAK9B,KAAK;gBACL,KAAK;;QAEb,MAAM;aACD,KAAK;cACJ,UAAU;;cAEV,KAAK,oBAAoB,KAAK;mBACzB,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;;;;;;;EAOpD,cAAc;;;;oBAII,KAAK;iBACR,KAAK;;UAEZ,MAAM;mBACG,MAAM;cACX,KAAK;;sBAEG,KAAK;;;;;;gBAMX,KAAK;gBACL,KAAK;;UAEX,MAAM;aACH,KAAK,6BAA6B,MAAM;cACvC,KAAK;;;sBAGG,KAAK;;;;;;;eAOZ,KAAK;kBACF,KAAK;;SAEd,MAAM;aACF,KAAK,4BAA4B,MAAM;cACtC,KAAK;;;sBAGG,KAAK;;;;;;;gBAOX,KAAK;mBACF,KAAK;;UAEd,MAAM;aACH,KAAK;cACJ,KAAK;;QAEX,eAAe;;;CAGtB,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,SAAS,YAAY,CACnB,MAAwD,EACxD,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;KACN,MAAM;;;;cAIG,KAAK,oCAAoC,KAAK;;YAEhD,MAAM;;;QAGV,KAAK;;;;;;;;;;iBAUI,MAAM;0BACG,KAAK;kBACb,MAAM;mBACL,KAAK,qCAAqC,MAAM;;;;;;CAMlE,CAAC;IACA,CAAC;IAED,OAAO;KACJ,MAAM;;;;cAIG,KAAK,oCAAoC,KAAK;;YAEhD,MAAM;;;QAGV,KAAK;;;;;;;;;;;;;;;iBAeI,MAAM;0BACG,KAAK;kBACb,MAAM;mBACL,KAAK,qCAAqC,MAAM;;;;;8CAKrB,KAAK;mBAChC,KAAK;;;;;;kBAMN,MAAM;kCACU,KAAK;kBACrB,MAAM;;;;mBAIL,KAAK,mCAAmC,MAAM;mBAC9C,KAAK;;;;;;oBAMJ,MAAM;8BACI,KAAK;;;mBAGhB,KAAK;;;;;;oBAMJ,MAAM;oCACU,KAAK;;mBAEtB,KAAK;;;;;;oBAMJ,MAAM;0BACA,KAAK;mBACZ,KAAK;;;;;;CAMvB,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAqC;IACzE,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAEzC,sDAAsD;IACtD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,cAAc,MAAM,CAAC,KAAK,SAAS;YACzC,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,eAAe,MAAM,CAAC,KAAK,YAAY;YAC7C,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,kBAAkB,MAAM,CAAC,KAAK,KAAK;YACzC,OAAO,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,4BAA4B,MAAM,CAAC,KAAK,UAAU;YACxD,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB,EAAE,OAAwB;IAClF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;IAE/C,sDAAsD;IACtD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,SAAS;YACzB,CAAC,CAAC,KAAK,UAAU,SAAS,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,wCAAwC,SAAS;;uCAEnC,SAAS;;;;;;2CAML,SAAS,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO;;iCAEM,SAAS;6BACb,UAAU,SAAS,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;oEACP,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO;;wBAEH,SAAS;uCACM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO;;gBAET,SAAS,mCAAmC,SAAS;;;;SAI5D,SAAS,KAAK,SAAS;SACvB,CAAC,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mDAAmD;IACnD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO;;0CAEiB,SAAS,UAAU,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,UAAU;;mBAExB,SAAS;mBACT,SAAS;mBACT,SAAS;mBACT,SAAS;mBACT,SAAS;mBACT,SAAS,iBAAiB,CAAC,CAAC;IAE7C,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Template
|
|
3
|
+
*
|
|
4
|
+
* Generates service class files for VeloxTS applications.
|
|
5
|
+
*/
|
|
6
|
+
import type { ProjectContext, TemplateFunction } from '../types.js';
|
|
7
|
+
export interface ServiceOptions {
|
|
8
|
+
/** Generate CRUD service */
|
|
9
|
+
crud: boolean;
|
|
10
|
+
/** Include caching layer */
|
|
11
|
+
cache: boolean;
|
|
12
|
+
/** Include event emitter */
|
|
13
|
+
events: boolean;
|
|
14
|
+
/** Generate injectable service (DI) */
|
|
15
|
+
injectable: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get the path for a service file
|
|
19
|
+
*/
|
|
20
|
+
export declare function getServicePath(entityName: string, _project: ProjectContext): string;
|
|
21
|
+
/**
|
|
22
|
+
* Service template function
|
|
23
|
+
*/
|
|
24
|
+
export declare const serviceTemplate: TemplateFunction<ServiceOptions>;
|
|
25
|
+
export declare function getServiceInstructions(entityName: string, options: ServiceOptions): string;
|
|
26
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/generators/templates/service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAmB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMrF,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAEnF;AA6dD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,cAAc,CAQ5D,CAAC;AAMF,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CA0B1F"}
|