@odata-effect/odata-effect-generator 0.2.0 → 0.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 +17 -8
- package/dist/cjs/Cli.js +2 -2
- package/dist/cjs/Cli.js.map +1 -1
- package/dist/cjs/generator/Generator.js +5 -13
- package/dist/cjs/generator/Generator.js.map +1 -1
- package/dist/cjs/generator/IndexGenerator.js +14 -11
- package/dist/cjs/generator/IndexGenerator.js.map +1 -1
- package/dist/cjs/generator/ModelsGenerator.js +2 -5
- package/dist/cjs/generator/ModelsGenerator.js.map +1 -1
- package/dist/cjs/generator/NamingHelper.js.map +1 -1
- package/dist/cjs/generator/NavigationGenerator.js +43 -11
- package/dist/cjs/generator/NavigationGenerator.js.map +1 -1
- package/dist/cjs/generator/OperationsGenerator.js +2 -2
- package/dist/cjs/generator/OperationsGenerator.js.map +1 -1
- package/dist/cjs/generator/ServiceFnGenerator.js +102 -224
- package/dist/cjs/generator/ServiceFnGenerator.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/dts/Cli.d.ts.map +1 -1
- package/dist/dts/generator/Generator.d.ts.map +1 -1
- package/dist/dts/generator/IndexGenerator.d.ts.map +1 -1
- package/dist/dts/generator/NamingHelper.d.ts.map +1 -1
- package/dist/dts/generator/NavigationGenerator.d.ts.map +1 -1
- package/dist/dts/generator/ServiceFnGenerator.d.ts +10 -11
- package/dist/dts/generator/ServiceFnGenerator.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -4
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Cli.js +2 -2
- package/dist/esm/Cli.js.map +1 -1
- package/dist/esm/generator/Generator.js +5 -13
- package/dist/esm/generator/Generator.js.map +1 -1
- package/dist/esm/generator/IndexGenerator.js +14 -11
- package/dist/esm/generator/IndexGenerator.js.map +1 -1
- package/dist/esm/generator/ModelsGenerator.js +2 -5
- package/dist/esm/generator/ModelsGenerator.js.map +1 -1
- package/dist/esm/generator/NamingHelper.js.map +1 -1
- package/dist/esm/generator/NavigationGenerator.js +43 -11
- package/dist/esm/generator/NavigationGenerator.js.map +1 -1
- package/dist/esm/generator/OperationsGenerator.js +2 -2
- package/dist/esm/generator/OperationsGenerator.js.map +1 -1
- package/dist/esm/generator/ServiceFnGenerator.js +102 -224
- package/dist/esm/generator/ServiceFnGenerator.js.map +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -9
- package/src/Cli.ts +8 -1
- package/src/generator/Generator.ts +8 -17
- package/src/generator/IndexGenerator.ts +14 -12
- package/src/generator/ModelsGenerator.ts +2 -5
- package/src/generator/NamingHelper.ts +5 -3
- package/src/generator/NavigationGenerator.ts +58 -24
- package/src/generator/OperationsGenerator.ts +40 -14
- package/src/generator/ServiceFnGenerator.ts +117 -265
- package/src/index.ts +4 -4
- package/dist/cjs/generator/ServiceFnPromiseGenerator.js +0 -183
- package/dist/cjs/generator/ServiceFnPromiseGenerator.js.map +0 -1
- package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts +0 -40
- package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts.map +0 -1
- package/dist/esm/generator/ServiceFnPromiseGenerator.js +0 -175
- package/dist/esm/generator/ServiceFnPromiseGenerator.js.map +0 -1
- package/generator/ServiceFnPromiseGenerator/package.json +0 -6
- package/src/generator/ServiceFnPromiseGenerator.ts +0 -243
|
@@ -5,265 +5,143 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.generateServiceFns = void 0;
|
|
7
7
|
var _NamingHelper = require("./NamingHelper.js");
|
|
8
|
-
const V2_CONFIG = {
|
|
9
|
-
odataNamespace: "OData",
|
|
10
|
-
buildEntityPath: "buildEntityPath",
|
|
11
|
-
queryOptionsType: "ODataQueryOptions",
|
|
12
|
-
clientConfigTag: "ODataClientConfig"
|
|
13
|
-
};
|
|
14
|
-
const V4_CONFIG = {
|
|
15
|
-
odataNamespace: "ODataV4",
|
|
16
|
-
buildEntityPath: "buildEntityPathV4",
|
|
17
|
-
queryOptionsType: "ODataV4QueryOptions",
|
|
18
|
-
clientConfigTag: "ODataV4ClientConfig"
|
|
19
|
-
};
|
|
20
|
-
const getVersionConfig = version => version === "V4" ? V4_CONFIG : V2_CONFIG;
|
|
21
8
|
/**
|
|
22
|
-
* Generate
|
|
9
|
+
* Generate the Services.ts file using crud factory.
|
|
23
10
|
*
|
|
24
11
|
* @since 1.0.0
|
|
25
12
|
* @category generation
|
|
26
13
|
*/
|
|
27
14
|
const generateServiceFns = dataModel => {
|
|
28
|
-
const
|
|
29
|
-
// Generate individual entity service files
|
|
30
|
-
for (const entitySet of dataModel.entitySets.values()) {
|
|
31
|
-
const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
|
|
32
|
-
if (entityType) {
|
|
33
|
-
const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
|
|
34
|
-
entityServices.push({
|
|
35
|
-
fileName: `${serviceClassName}.ts`,
|
|
36
|
-
content: generateEntityServiceFnFile(entitySet, entityType, dataModel)
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
15
|
+
const content = generateServicesFile(dataModel);
|
|
40
16
|
return {
|
|
41
|
-
|
|
17
|
+
servicesFile: {
|
|
18
|
+
fileName: "Services.ts",
|
|
19
|
+
content
|
|
20
|
+
}
|
|
42
21
|
};
|
|
43
22
|
};
|
|
44
23
|
/**
|
|
45
|
-
* Generate
|
|
24
|
+
* Generate the Services.ts file content.
|
|
46
25
|
*/
|
|
47
26
|
exports.generateServiceFns = generateServiceFns;
|
|
48
|
-
const
|
|
27
|
+
const generateServicesFile = dataModel => {
|
|
49
28
|
const lines = [];
|
|
50
|
-
const versionConfig = getVersionConfig(dataModel.version);
|
|
51
|
-
const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
|
|
52
|
-
const entityName = entityType.name;
|
|
53
|
-
const idTypeName = (0, _NamingHelper.getIdTypeName)(entityName);
|
|
54
|
-
const editableName = (0, _NamingHelper.getEditableTypeName)(entityName);
|
|
55
|
-
const hasKeys = entityType.keys.length > 0;
|
|
56
29
|
const isV4 = dataModel.version === "V4";
|
|
57
|
-
|
|
30
|
+
const crudImportPath = isV4 ? "@odata-effect/odata-effect/CrudV4" : "@odata-effect/odata-effect/Crud";
|
|
31
|
+
// Collect all entity sets with their types
|
|
32
|
+
const entitySets = [];
|
|
33
|
+
for (const entitySet of dataModel.entitySets.values()) {
|
|
34
|
+
const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
|
|
35
|
+
if (entityType) {
|
|
36
|
+
entitySets.push({
|
|
37
|
+
entitySet,
|
|
38
|
+
entityType
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Header
|
|
58
43
|
lines.push(`/**`);
|
|
59
|
-
lines.push(` *
|
|
44
|
+
lines.push(` * Entity services for ${dataModel.serviceName} OData ${dataModel.version}.`);
|
|
60
45
|
lines.push(` * Generated by odata-effect-gen.`);
|
|
61
46
|
lines.push(` *`);
|
|
62
|
-
lines.push(` *
|
|
63
|
-
lines.push(` * \`\`\`ts`);
|
|
64
|
-
lines.push(` * // Namespace import - nice autocomplete, tree-shakable`);
|
|
65
|
-
lines.push(` * import { ${serviceClassName} } from "@template/${dataModel.serviceName.toLowerCase()}-effect"`);
|
|
66
|
-
lines.push(` * const items = yield* ${serviceClassName}.getAll()`);
|
|
67
|
-
lines.push(` *`);
|
|
68
|
-
lines.push(` * // Direct import - maximum tree-shaking`);
|
|
69
|
-
lines.push(` * import { getAll } from "@template/${dataModel.serviceName.toLowerCase()}-effect/${serviceClassName}"`);
|
|
70
|
-
lines.push(` * const items = yield* getAll()`);
|
|
71
|
-
lines.push(` * \`\`\``);
|
|
47
|
+
lines.push(` * Uses the crud factory for minimal generated code.`);
|
|
72
48
|
lines.push(` *`);
|
|
73
49
|
lines.push(` * @since 1.0.0`);
|
|
74
50
|
lines.push(` */`);
|
|
75
|
-
lines.push(`import
|
|
76
|
-
lines.push(`import * as Schema from "effect/Schema"`);
|
|
77
|
-
lines.push(`import type { HttpClient } from "@effect/platform"`);
|
|
78
|
-
lines.push(`import type * as HttpClientError from "@effect/platform/HttpClientError"`);
|
|
79
|
-
lines.push(`import type * as HttpBody from "@effect/platform/HttpBody"`);
|
|
80
|
-
lines.push(``);
|
|
81
|
-
// Import models
|
|
82
|
-
lines.push(`import {`);
|
|
83
|
-
lines.push(` ${entityName},`);
|
|
84
|
-
if (hasKeys) {
|
|
85
|
-
lines.push(` type ${idTypeName},`);
|
|
86
|
-
}
|
|
87
|
-
lines.push(` ${editableName}`);
|
|
88
|
-
lines.push(`} from "./Models"`);
|
|
51
|
+
lines.push(`import { crud } from "${crudImportPath}"`);
|
|
89
52
|
lines.push(``);
|
|
90
|
-
// Import
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
lines.push(`import {`);
|
|
101
|
-
lines.push(` type ${versionConfig.clientConfigTag},`);
|
|
102
|
-
lines.push(` ${versionConfig.buildEntityPath},`);
|
|
103
|
-
lines.push(` type ${versionConfig.queryOptionsType}`);
|
|
104
|
-
lines.push(`} from "@odata-effect/odata-effect/ODataClient"`);
|
|
53
|
+
// Import all entity types
|
|
54
|
+
const modelImports = [];
|
|
55
|
+
for (const {
|
|
56
|
+
entityType
|
|
57
|
+
} of entitySets) {
|
|
58
|
+
modelImports.push(entityType.name);
|
|
59
|
+
if (entityType.keys.length > 0) {
|
|
60
|
+
modelImports.push(`type ${(0, _NamingHelper.getIdTypeName)(entityType.name)}`);
|
|
61
|
+
}
|
|
62
|
+
modelImports.push((0, _NamingHelper.getEditableTypeName)(entityType.name));
|
|
105
63
|
}
|
|
106
64
|
lines.push(`import {`);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
lines.push(` type ODataError,`);
|
|
111
|
-
lines.push(` type ParseError`);
|
|
112
|
-
lines.push(`} from "@odata-effect/odata-effect/Errors"`);
|
|
113
|
-
lines.push(``);
|
|
114
|
-
// Service error type
|
|
115
|
-
lines.push(`// ============================================================================`);
|
|
116
|
-
lines.push(`// Types`);
|
|
117
|
-
lines.push(`// ============================================================================`);
|
|
118
|
-
lines.push(``);
|
|
119
|
-
lines.push(`/**`);
|
|
120
|
-
lines.push(` * Error type for ${entityName} service operations.`);
|
|
121
|
-
lines.push(` *`);
|
|
122
|
-
lines.push(` * @since 1.0.0`);
|
|
123
|
-
lines.push(` * @category errors`);
|
|
124
|
-
lines.push(` */`);
|
|
125
|
-
lines.push(`export type ${serviceClassName}Error =`);
|
|
126
|
-
lines.push(` | HttpClientError.HttpClientError`);
|
|
127
|
-
lines.push(` | HttpBody.HttpBodyError`);
|
|
128
|
-
lines.push(` | ParseError`);
|
|
129
|
-
if (!isV4) {
|
|
130
|
-
lines.push(` | SapError`);
|
|
65
|
+
for (let i = 0; i < modelImports.length; i++) {
|
|
66
|
+
const isLast = i === modelImports.length - 1;
|
|
67
|
+
lines.push(` ${modelImports[i]}${isLast ? "" : ","}`);
|
|
131
68
|
}
|
|
132
|
-
lines.push(`
|
|
69
|
+
lines.push(`} from "./Models"`);
|
|
133
70
|
lines.push(``);
|
|
134
|
-
//
|
|
135
|
-
lines.push(
|
|
136
|
-
lines.push(`
|
|
137
|
-
lines.push(` *`);
|
|
138
|
-
lines.push(` * @since 1.0.0`);
|
|
139
|
-
lines.push(` * @category context`);
|
|
140
|
-
lines.push(` */`);
|
|
141
|
-
lines.push(`export type ${serviceClassName}Context = ${versionConfig.clientConfigTag} | HttpClient.HttpClient`);
|
|
71
|
+
// Re-export types from the crud module
|
|
72
|
+
lines.push(`// Re-export types for convenience`);
|
|
73
|
+
lines.push(`export type { CrudError, CrudContext, CrudService } from "${crudImportPath}"`);
|
|
142
74
|
lines.push(``);
|
|
143
|
-
//
|
|
144
|
-
if (hasKeys) {
|
|
145
|
-
lines.push(`// ============================================================================`);
|
|
146
|
-
lines.push(`// Internal Helpers`);
|
|
147
|
-
lines.push(`// ============================================================================`);
|
|
148
|
-
lines.push(``);
|
|
149
|
-
const normalizeIdFn = `normalizeId`;
|
|
150
|
-
lines.push(`const ${normalizeIdFn} = (id: ${idTypeName}): string =>`);
|
|
151
|
-
if (entityType.keys.length === 1) {
|
|
152
|
-
const keyProp = entityType.keys[0];
|
|
153
|
-
const keyTsType = keyProp.typeMapping.tsType;
|
|
154
|
-
const primitiveCheck = keyTsType === "number" ? "number" : "string";
|
|
155
|
-
lines.push(` typeof id === "${primitiveCheck}" ? String(id) : String(id.${keyProp.name})`);
|
|
156
|
-
} else {
|
|
157
|
-
const keyParts = entityType.keys.map(k => `${k.odataName}='\${String(id.${k.name})}'`).join(",");
|
|
158
|
-
lines.push(` typeof id === "string" ? id : \`${keyParts}\``);
|
|
159
|
-
}
|
|
160
|
-
lines.push(``);
|
|
161
|
-
}
|
|
162
|
-
// Standalone functions
|
|
75
|
+
// Generate each service
|
|
163
76
|
lines.push(`// ============================================================================`);
|
|
164
|
-
lines.push(`//
|
|
77
|
+
lines.push(`// Entity Services`);
|
|
165
78
|
lines.push(`// ============================================================================`);
|
|
166
79
|
lines.push(``);
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
lines.push(` options?: ${versionConfig.queryOptionsType}`);
|
|
176
|
-
lines.push(`): Effect.Effect<`);
|
|
177
|
-
lines.push(` ReadonlyArray<${entityName}>,`);
|
|
178
|
-
lines.push(` ${serviceClassName}Error,`);
|
|
179
|
-
lines.push(` ${serviceClassName}Context`);
|
|
180
|
-
lines.push(`> =>`);
|
|
181
|
-
lines.push(` ${versionConfig.odataNamespace}.getCollection("${entitySet.name}", ${entityName}, options)`);
|
|
182
|
-
lines.push(``);
|
|
183
|
-
// getById (if entity has keys)
|
|
184
|
-
if (hasKeys) {
|
|
185
|
-
const keyObj = entityType.keys.length === 1 ? `{ ${entityType.keys[0].odataName}: normalizeId(id) }` : `normalizeId(id)`;
|
|
186
|
-
lines.push(`/**`);
|
|
187
|
-
lines.push(` * Fetch a single ${entityName} by ID.`);
|
|
188
|
-
lines.push(` *`);
|
|
189
|
-
lines.push(` * @since 1.0.0`);
|
|
190
|
-
lines.push(` * @category operations`);
|
|
191
|
-
lines.push(` */`);
|
|
192
|
-
lines.push(`export const getById = (`);
|
|
193
|
-
lines.push(` id: ${idTypeName}`);
|
|
194
|
-
lines.push(`): Effect.Effect<`);
|
|
195
|
-
lines.push(` ${entityName},`);
|
|
196
|
-
lines.push(` ${serviceClassName}Error,`);
|
|
197
|
-
lines.push(` ${serviceClassName}Context`);
|
|
198
|
-
lines.push(`> =>`);
|
|
199
|
-
lines.push(` ${versionConfig.odataNamespace}.get(`);
|
|
200
|
-
lines.push(` ${versionConfig.buildEntityPath}("${entitySet.name}", ${keyObj}),`);
|
|
201
|
-
lines.push(` ${entityName}`);
|
|
202
|
-
lines.push(` )`);
|
|
203
|
-
lines.push(``);
|
|
204
|
-
}
|
|
205
|
-
// create
|
|
206
|
-
lines.push(`/**`);
|
|
207
|
-
lines.push(` * Create a new ${entityName} entity.`);
|
|
208
|
-
lines.push(` *`);
|
|
209
|
-
lines.push(` * @since 1.0.0`);
|
|
210
|
-
lines.push(` * @category operations`);
|
|
211
|
-
lines.push(` */`);
|
|
212
|
-
lines.push(`export const create = (`);
|
|
213
|
-
lines.push(` entity: ${editableName}`);
|
|
214
|
-
lines.push(`): Effect.Effect<`);
|
|
215
|
-
lines.push(` ${entityName},`);
|
|
216
|
-
lines.push(` ${serviceClassName}Error,`);
|
|
217
|
-
lines.push(` ${serviceClassName}Context`);
|
|
218
|
-
lines.push(`> =>`);
|
|
219
|
-
lines.push(` ${versionConfig.odataNamespace}.post("${entitySet.name}", entity, ${editableName}, ${entityName})`);
|
|
220
|
-
lines.push(``);
|
|
221
|
-
// update (if entity has keys)
|
|
222
|
-
if (hasKeys) {
|
|
223
|
-
const keyObj = entityType.keys.length === 1 ? `{ ${entityType.keys[0].odataName}: normalizeId(id) }` : `normalizeId(id)`;
|
|
80
|
+
for (const {
|
|
81
|
+
entitySet,
|
|
82
|
+
entityType
|
|
83
|
+
} of entitySets) {
|
|
84
|
+
const serviceClassName = (0, _NamingHelper.getServiceClassName)(entitySet.name);
|
|
85
|
+
const entityName = entityType.name;
|
|
86
|
+
const editableName = (0, _NamingHelper.getEditableTypeName)(entityName);
|
|
87
|
+
const hasKeys = entityType.keys.length > 0;
|
|
224
88
|
lines.push(`/**`);
|
|
225
|
-
lines.push(` *
|
|
89
|
+
lines.push(` * CRUD service for ${entityName} entities.`);
|
|
226
90
|
lines.push(` *`);
|
|
227
91
|
lines.push(` * @since 1.0.0`);
|
|
228
|
-
lines.push(` * @category
|
|
92
|
+
lines.push(` * @category services`);
|
|
229
93
|
lines.push(` */`);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
lines.push(` * Delete a ${entityName} entity.`);
|
|
247
|
-
lines.push(` *`);
|
|
248
|
-
lines.push(` * @since 1.0.0`);
|
|
249
|
-
lines.push(` * @category operations`);
|
|
250
|
-
lines.push(` */`);
|
|
251
|
-
lines.push(`export const del = (`);
|
|
252
|
-
lines.push(` id: ${idTypeName}`);
|
|
253
|
-
lines.push(`): Effect.Effect<`);
|
|
254
|
-
lines.push(` void,`);
|
|
255
|
-
lines.push(` ${serviceClassName}Error,`);
|
|
256
|
-
lines.push(` ${serviceClassName}Context`);
|
|
257
|
-
lines.push(`> =>`);
|
|
258
|
-
lines.push(` ${versionConfig.odataNamespace}.del(`);
|
|
259
|
-
lines.push(` ${versionConfig.buildEntityPath}("${entitySet.name}", ${keyObj})`);
|
|
260
|
-
lines.push(` )`);
|
|
261
|
-
lines.push(``);
|
|
262
|
-
// Alias for nice naming
|
|
263
|
-
lines.push(`// Alias for nice naming`);
|
|
264
|
-
lines.push(`export { del as delete }`);
|
|
94
|
+
if (hasKeys) {
|
|
95
|
+
lines.push(`export const ${serviceClassName} = crud({`);
|
|
96
|
+
lines.push(` path: "${entitySet.name}",`);
|
|
97
|
+
lines.push(` schema: ${entityName},`);
|
|
98
|
+
lines.push(` editableSchema: ${editableName},`);
|
|
99
|
+
lines.push(` idToKey: ${generateIdToKeyFunction(entityType, dataModel.version)}`);
|
|
100
|
+
lines.push(`})`);
|
|
101
|
+
} else {
|
|
102
|
+
// Entity without keys - can only getAll and create
|
|
103
|
+
lines.push(`export const ${serviceClassName} = crud({`);
|
|
104
|
+
lines.push(` path: "${entitySet.name}",`);
|
|
105
|
+
lines.push(` schema: ${entityName},`);
|
|
106
|
+
lines.push(` editableSchema: ${editableName},`);
|
|
107
|
+
lines.push(` idToKey: (_id: never) => { throw new Error("Entity has no keys") }`);
|
|
108
|
+
lines.push(`})`);
|
|
109
|
+
}
|
|
265
110
|
lines.push(``);
|
|
266
111
|
}
|
|
267
112
|
return lines.join("\n");
|
|
268
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* Generate the idToKey function for an entity type.
|
|
116
|
+
*/
|
|
117
|
+
const generateIdToKeyFunction = (entityType, version) => {
|
|
118
|
+
const idTypeName = (0, _NamingHelper.getIdTypeName)(entityType.name);
|
|
119
|
+
const isV4 = version === "V4";
|
|
120
|
+
if (entityType.keys.length === 1) {
|
|
121
|
+
const keyProp = entityType.keys[0];
|
|
122
|
+
const keyTsType = keyProp.typeMapping.tsType;
|
|
123
|
+
const primitiveCheck = keyTsType === "number" ? "number" : "string";
|
|
124
|
+
if (isV4) {
|
|
125
|
+
// V4 can use number keys directly
|
|
126
|
+
if (keyTsType === "number") {
|
|
127
|
+
return `(id: ${idTypeName}) => typeof id === "number" ? id : id.${keyProp.name}`;
|
|
128
|
+
} else {
|
|
129
|
+
return `(id: ${idTypeName}) => typeof id === "string" ? { ${keyProp.odataName}: id } : { ${keyProp.odataName}: id.${keyProp.name} }`;
|
|
130
|
+
}
|
|
131
|
+
} else {
|
|
132
|
+
// V2 needs string keys
|
|
133
|
+
return `(id: ${idTypeName}) => typeof id === "${primitiveCheck}" ? { ${keyProp.odataName}: String(id) } : { ${keyProp.odataName}: String(id.${keyProp.name}) }`;
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
// Composite key
|
|
137
|
+
const keyMapping = entityType.keys.map(k => {
|
|
138
|
+
if (isV4) {
|
|
139
|
+
return `${k.odataName}: id.${k.name}`;
|
|
140
|
+
} else {
|
|
141
|
+
return `${k.odataName}: String(id.${k.name})`;
|
|
142
|
+
}
|
|
143
|
+
}).join(", ");
|
|
144
|
+
return `(id: ${idTypeName}) => ({ ${keyMapping} })`;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
269
147
|
//# sourceMappingURL=ServiceFnGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceFnGenerator.js","names":["_NamingHelper","require","V2_CONFIG","odataNamespace","buildEntityPath","queryOptionsType","clientConfigTag","V4_CONFIG","getVersionConfig","version","generateServiceFns","dataModel","entityServices","entitySet","entitySets","values","entityType","entityTypes","get","entityTypeFqName","serviceClassName","getServiceClassName","name","push","fileName","content","generateEntityServiceFnFile","exports","lines","versionConfig","entityName","idTypeName","getIdTypeName","editableName","getEditableTypeName","hasKeys","keys","length","isV4","serviceName","toLowerCase","normalizeIdFn","keyProp","keyTsType","typeMapping","tsType","primitiveCheck","keyParts","map","k","odataName","join","keyObj"],"sources":["../../../src/generator/ServiceFnGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ServiceFnGenerator.js","names":["_NamingHelper","require","generateServiceFns","dataModel","content","generateServicesFile","servicesFile","fileName","exports","lines","isV4","version","crudImportPath","entitySets","entitySet","values","entityType","entityTypes","get","entityTypeFqName","push","serviceName","modelImports","name","keys","length","getIdTypeName","getEditableTypeName","i","isLast","serviceClassName","getServiceClassName","entityName","editableName","hasKeys","generateIdToKeyFunction","join","idTypeName","keyProp","keyTsType","typeMapping","tsType","primitiveCheck","odataName","keyMapping","map","k"],"sources":["../../../src/generator/ServiceFnGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.bin = exports.XmlParser = exports.TypeMapper = exports.
|
|
6
|
+
exports.bin = exports.XmlParser = exports.TypeMapper = exports.ServiceFnGenerator = exports.QueryModelsGenerator = exports.PackageGenerator = exports.NavigationGenerator = exports.NamingHelper = exports.ModelsGenerator = exports.IndexGenerator = exports.Generator = exports.EdmxSchema = exports.Digester = exports.DataModel = exports.Cli = void 0;
|
|
7
7
|
var _Cli = _interopRequireWildcard(require("./Cli.js"));
|
|
8
8
|
exports.Cli = _Cli;
|
|
9
9
|
var _bin = _interopRequireWildcard(require("./bin.js"));
|
|
@@ -26,8 +26,8 @@ var _QueryModelsGenerator = _interopRequireWildcard(require("./generator/QueryMo
|
|
|
26
26
|
exports.QueryModelsGenerator = _QueryModelsGenerator;
|
|
27
27
|
var _ServiceFnGenerator = _interopRequireWildcard(require("./generator/ServiceFnGenerator.js"));
|
|
28
28
|
exports.ServiceFnGenerator = _ServiceFnGenerator;
|
|
29
|
-
var
|
|
30
|
-
exports.
|
|
29
|
+
var _NavigationGenerator = _interopRequireWildcard(require("./generator/NavigationGenerator.js"));
|
|
30
|
+
exports.NavigationGenerator = _NavigationGenerator;
|
|
31
31
|
var _DataModel = _interopRequireWildcard(require("./model/DataModel.js"));
|
|
32
32
|
exports.DataModel = _DataModel;
|
|
33
33
|
var _EdmxSchema = _interopRequireWildcard(require("./parser/EdmxSchema.js"));
|
package/dist/dts/Cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/Cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../src/Cli.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AA8GvC;;;;;GAKG;AACH,eAAO,MAAM,GAAG,sKAGd,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Generator.d.ts","sourceRoot":"","sources":["../../../src/generator/Generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Generator.d.ts","sourceRoot":"","sources":["../../../src/generator/Generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAiBtD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,sGAAsG;IACtG,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;;;;;;;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBAMnC;CAAG;AAUJ;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,WAAW,SAAS,EACpB,QAAQ,eAAe,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAmIpE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/IndexGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"IndexGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/IndexGenerator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAYtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,WAAW,SAAS,KAAG,MAkHpD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamingHelper.d.ts","sourceRoot":"","sources":["../../../src/generator/NamingHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAI1C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,MAO/C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAEnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MAEhD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"NamingHelper.d.ts","sourceRoot":"","sources":["../../../src/generator/NamingHelper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAI1C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAGzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,MAO/C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAEnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MAEhD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,KAAG,MAkB3D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAExD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MAEvD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAEtD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,MAEtD,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAEhD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/NavigationGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"NavigationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/NavigationGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAA;AA2BvE;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAO,MAAwB,CAAA;AAErE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;CACjE;AA8FD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,SAAS,KAAG,0BAU1D,CAAA"}
|
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generator for
|
|
2
|
+
* Generator for entity services using the crud factory.
|
|
3
3
|
*
|
|
4
|
-
* This module generates
|
|
5
|
-
*
|
|
6
|
-
* the tree-shakable OData functions directly.
|
|
4
|
+
* This module generates a single Services.ts file that creates CRUD services
|
|
5
|
+
* for all entity sets using the crud factory from @odata-effect/odata-effect.
|
|
7
6
|
*
|
|
8
7
|
* @since 1.0.0
|
|
9
8
|
*/
|
|
10
9
|
import type { DataModel } from "../model/DataModel.js";
|
|
11
10
|
/**
|
|
12
|
-
* Generated service
|
|
11
|
+
* Generated service file.
|
|
13
12
|
*
|
|
14
13
|
* @since 1.0.0
|
|
15
14
|
* @category types
|
|
16
15
|
*/
|
|
17
|
-
export interface
|
|
16
|
+
export interface GeneratedServiceFile {
|
|
18
17
|
readonly fileName: string;
|
|
19
18
|
readonly content: string;
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
|
-
* Result of service
|
|
21
|
+
* Result of service generation.
|
|
23
22
|
*
|
|
24
23
|
* @since 1.0.0
|
|
25
24
|
* @category types
|
|
26
25
|
*/
|
|
27
|
-
export interface
|
|
28
|
-
readonly
|
|
26
|
+
export interface ServiceGenerationResult {
|
|
27
|
+
readonly servicesFile: GeneratedServiceFile;
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
|
-
* Generate
|
|
30
|
+
* Generate the Services.ts file using crud factory.
|
|
32
31
|
*
|
|
33
32
|
* @since 1.0.0
|
|
34
33
|
* @category generation
|
|
35
34
|
*/
|
|
36
|
-
export declare const generateServiceFns: (dataModel: DataModel) =>
|
|
35
|
+
export declare const generateServiceFns: (dataModel: DataModel) => ServiceGenerationResult;
|
|
37
36
|
//# sourceMappingURL=ServiceFnGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceFnGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ServiceFnGenerator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ServiceFnGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ServiceFnGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAmC,MAAM,uBAAuB,CAAA;AAIvF;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;CAC5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,uBAQzD,CAAA"}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -70,14 +70,14 @@ export * as QueryModelsGenerator from "./generator/QueryModelsGenerator.js";
|
|
|
70
70
|
*/
|
|
71
71
|
export * as ServiceFnGenerator from "./generator/ServiceFnGenerator.js";
|
|
72
72
|
/**
|
|
73
|
-
* Generator for
|
|
73
|
+
* Generator for tree-shakable navigation path builders.
|
|
74
74
|
*
|
|
75
|
-
* This module generates
|
|
76
|
-
*
|
|
75
|
+
* This module generates pipe-based navigation functions and the toPromise
|
|
76
|
+
* helper for Promise-based environments.
|
|
77
77
|
*
|
|
78
78
|
* @since 1.0.0
|
|
79
79
|
*/
|
|
80
|
-
export * as
|
|
80
|
+
export * as NavigationGenerator from "./generator/NavigationGenerator.js";
|
|
81
81
|
/**
|
|
82
82
|
* Intermediate representation for OData metadata.
|
|
83
83
|
* This is the central data model that digesters create and generators consume.
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;GAKG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAElD;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAA;AAE/D;;;;GAIG;AACH,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAA;AAEjE;;;;GAIG;AACH,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAE3D;;;;GAIG;AACH,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAA;AAEnE;;;;GAIG;AACH,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAA;AAE3E;;;;;;;;GAQG;AACH,OAAO,KAAK,kBAAkB,MAAM,mCAAmC,CAAA;AAEvE;;;;;;;GAOG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;GAKG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAElD;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAA;AAE/D;;;;GAIG;AACH,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAA;AAEjE;;;;GAIG;AACH,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAE3D;;;;GAIG;AACH,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAA;AAEnE;;;;GAIG;AACH,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAA;AAE3E;;;;;;;;GAQG;AACH,OAAO,KAAK,kBAAkB,MAAM,mCAAmC,CAAA;AAEvE;;;;;;;GAOG;AACH,OAAO,KAAK,mBAAmB,MAAM,oCAAoC,CAAA;AAEzE;;;;;GAKG;AACH,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAEjD;;;;;GAKG;AACH,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AAEpD;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA"}
|
package/dist/esm/Cli.js
CHANGED
|
@@ -34,12 +34,12 @@ const generateCommand = /*#__PURE__*/Command.make("generate", {
|
|
|
34
34
|
force,
|
|
35
35
|
filesOnly
|
|
36
36
|
}).pipe(/*#__PURE__*/Command.withDescription("Generate Effect OData client from metadata"), /*#__PURE__*/Command.withHandler(({
|
|
37
|
+
filesOnly: onlyFiles,
|
|
37
38
|
force: forceOverwrite,
|
|
38
39
|
metadataPath: metaPath,
|
|
39
40
|
outputDir: outDir,
|
|
40
41
|
packageName: pkgName,
|
|
41
|
-
serviceName: svcName
|
|
42
|
-
filesOnly: onlyFiles
|
|
42
|
+
serviceName: svcName
|
|
43
43
|
}) => Effect.gen(function* () {
|
|
44
44
|
const fs = yield* FileSystem.FileSystem;
|
|
45
45
|
yield* Console.log(`Reading metadata from: ${metaPath}`);
|
package/dist/esm/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","names":["Args","Command","Options","FileSystem","Console","Effect","digestMetadata","generate","parseODataMetadata","metadataPath","path","name","pipe","withDescription","outputDir","serviceName","text","optional","packageName","force","boolean","withDefault","filesOnly","generateCommand","make","withHandler","forceOverwrite","metaPath","outDir","pkgName","svcName","
|
|
1
|
+
{"version":3,"file":"Cli.js","names":["Args","Command","Options","FileSystem","Console","Effect","digestMetadata","generate","parseODataMetadata","metadataPath","path","name","pipe","withDescription","outputDir","serviceName","text","optional","packageName","force","boolean","withDefault","filesOnly","generateCommand","make","withHandler","onlyFiles","forceOverwrite","metaPath","outDir","pkgName","svcName","gen","fs","log","metadataContent","readFileString","mapError","error","Error","edmx","dataModel","version","namespace","entityTypes","size","complexTypes","enumTypes","entitySets","config","_tag","value","rootCommand","withSubcommands","cli","run"],"sources":["../../src/Cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ import { generateOperations } from "./OperationsGenerator.js";
|
|
|
14
14
|
import { generatePackageJson, generateTsconfig, generateTsconfigBuild, generateTsconfigSrc, generateTsconfigTest, generateVitestConfig } from "./PackageGenerator.js";
|
|
15
15
|
import { generateQueryModels } from "./QueryModelsGenerator.js";
|
|
16
16
|
import { generateServiceFns } from "./ServiceFnGenerator.js";
|
|
17
|
-
import { generatePromiseServiceFns } from "./ServiceFnPromiseGenerator.js";
|
|
18
17
|
/**
|
|
19
18
|
* Error thrown during code generation.
|
|
20
19
|
*
|
|
@@ -46,8 +45,6 @@ export const generate = (dataModel, config) => Effect.gen(function* () {
|
|
|
46
45
|
};
|
|
47
46
|
// Generate tree-shakable service function files
|
|
48
47
|
const serviceResult = generateServiceFns(dataModel);
|
|
49
|
-
// Generate Promise-based service function files
|
|
50
|
-
const promiseServiceResult = generatePromiseServiceFns(dataModel);
|
|
51
48
|
// Generate operations file (FunctionImports, Functions, Actions)
|
|
52
49
|
const operationsResult = generateOperations(dataModel);
|
|
53
50
|
// Generate navigation builders
|
|
@@ -60,16 +57,11 @@ export const generate = (dataModel, config) => Effect.gen(function* () {
|
|
|
60
57
|
path: path.join(sourceDir, "QueryModels.ts"),
|
|
61
58
|
content: generateQueryModels(dataModel)
|
|
62
59
|
},
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
path: path.join(sourceDir,
|
|
66
|
-
content:
|
|
67
|
-
}
|
|
68
|
-
// Promise-based entity service function files
|
|
69
|
-
...promiseServiceResult.entityServices.map(svc => ({
|
|
70
|
-
path: path.join(sourceDir, svc.fileName),
|
|
71
|
-
content: svc.content
|
|
72
|
-
})),
|
|
60
|
+
// Services file (all entity CRUD services in one file)
|
|
61
|
+
{
|
|
62
|
+
path: path.join(sourceDir, serviceResult.servicesFile.fileName),
|
|
63
|
+
content: serviceResult.servicesFile.content
|
|
64
|
+
},
|
|
73
65
|
// Operations file (only if there are unbound operations)
|
|
74
66
|
...(operationsResult.operationsFile ? [{
|
|
75
67
|
path: path.join(sourceDir, operationsResult.operationsFile.fileName),
|