@postxl/generators 1.11.3 → 1.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.js +70 -43
- package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.js.map +1 -1
- package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js +241 -4
- package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js.map +1 -1
- package/dist/backend-import/generators/detect-delta/model-function.generator.js +113 -9
- package/dist/backend-import/generators/detect-delta/model-function.generator.js.map +1 -1
- package/dist/backend-import/import.generator.d.ts +4 -0
- package/dist/backend-import/import.generator.js +2 -0
- package/dist/backend-import/import.generator.js.map +1 -1
- package/dist/decoders/datamodel-decoder.generator.js +80 -1
- package/dist/decoders/datamodel-decoder.generator.js.map +1 -1
- package/dist/decoders/discriminated-union.decoder.generator.js +76 -9
- package/dist/decoders/discriminated-union.decoder.generator.js.map +1 -1
- package/dist/decoders/model-decoder.generator.js +120 -17
- package/dist/decoders/model-decoder.generator.js.map +1 -1
- package/dist/e2e/generators/docker-sh.generator.js +13 -5
- package/dist/e2e/generators/docker-sh.generator.js.map +1 -1
- package/dist/e2e/template/e2e/specs/example.spec.ts-snapshots/Navigate-to-homepage-and-take-snapshot-1-chromium-linux.png +0 -0
- package/dist/frontend-core/template/src/pages/dashboard/dashboard.page.tsx +1 -1
- package/package.json +2 -2
|
@@ -180,6 +180,7 @@ function prepareDetectDeltaFunction({ model, context, imports, }) {
|
|
|
180
180
|
requiredFields: [],
|
|
181
181
|
fieldNames: [],
|
|
182
182
|
deleteValidations: [],
|
|
183
|
+
relationKeyResolutions: [],
|
|
183
184
|
};
|
|
184
185
|
for (const field of model.fields.values()) {
|
|
185
186
|
handleField({ field, blocks, model, context, imports });
|
|
@@ -201,7 +202,15 @@ function prepareDetectDeltaFunction({ model, context, imports, }) {
|
|
|
201
202
|
// Get the keyField name for this model - used to identify existing records during import
|
|
202
203
|
const keyFieldName = model.keyField.name;
|
|
203
204
|
// Check if this model uses keyMap (has relation fields that need key-based lookup)
|
|
204
|
-
const usesKeyMap = blocks.sharedValidations.some((v) => v.includes('keyMap'));
|
|
205
|
+
const usesKeyMap = blocks.sharedValidations.some((v) => v.includes('keyMap')) || blocks.relationKeyResolutions.length > 0;
|
|
206
|
+
// Generate the resolveRelationKeys function that resolves keys to IDs before delta calculation
|
|
207
|
+
const resolveRelationKeysFunction = blocks.relationKeyResolutions.length > 0
|
|
208
|
+
? `async (item: ${model.types.name}): Promise<{ item: ${model.types.name}; errors: ${model.import.delta.errors.name}[] }> => {
|
|
209
|
+
const errors: ${model.import.delta.errors.name}[] = []
|
|
210
|
+
${blocks.relationKeyResolutions.join('\n')}
|
|
211
|
+
return { item, errors }
|
|
212
|
+
}`
|
|
213
|
+
: `(item: ${model.types.name}): Promise<{ item: ${model.types.name}; errors: ${model.import.delta.errors.name}[] }> => Promise.resolve({ item, errors: [] })`;
|
|
205
214
|
return `
|
|
206
215
|
/**
|
|
207
216
|
* Detects changes for a ${model.userFriendlyName} item and returns the result as a ${generic.modelType.name} object.
|
|
@@ -229,6 +238,7 @@ export async function detect${model.internalSingularNameCapitalized}Delta(
|
|
|
229
238
|
existingItem,
|
|
230
239
|
properties: [${blocks.fieldNames.join(',')}],
|
|
231
240
|
}),
|
|
241
|
+
resolveRelationKeys: ${resolveRelationKeysFunction},
|
|
232
242
|
validate: {
|
|
233
243
|
create: async ({ newItem: item }): Promise<${model.import.delta.errors.name}[]> =>
|
|
234
244
|
${context.import.detectDelta._utils.keepErrors.name}([
|
|
@@ -242,7 +252,7 @@ export async function detect${model.internalSingularNameCapitalized}Delta(
|
|
|
242
252
|
})
|
|
243
253
|
}`;
|
|
244
254
|
}
|
|
245
|
-
function handleField({ field, blocks
|
|
255
|
+
function handleField({ field, blocks, model, context, imports, }) {
|
|
246
256
|
if (field.isReadonly) {
|
|
247
257
|
return;
|
|
248
258
|
}
|
|
@@ -250,22 +260,23 @@ function handleField({ field, blocks: { sharedValidations, fieldNames, requiredF
|
|
|
250
260
|
case 'id':
|
|
251
261
|
return;
|
|
252
262
|
case 'scalar':
|
|
253
|
-
handleScalarField({ field, model, context, imports, sharedValidations });
|
|
263
|
+
handleScalarField({ field, model, context, imports, sharedValidations: blocks.sharedValidations });
|
|
254
264
|
break;
|
|
255
265
|
case 'relation':
|
|
256
|
-
handleRelationField({ field, model, context, imports,
|
|
266
|
+
handleRelationField({ field, model, context, imports, blocks });
|
|
257
267
|
break;
|
|
258
268
|
case 'enum':
|
|
259
269
|
break;
|
|
260
270
|
case 'discriminatedUnion':
|
|
271
|
+
handleDiscriminatedUnionField({ field, model, context, imports, blocks });
|
|
261
272
|
break;
|
|
262
273
|
default:
|
|
263
274
|
throw new utils_1.ExhaustiveSwitchCheck(field);
|
|
264
275
|
}
|
|
265
276
|
const fieldName = field.name;
|
|
266
|
-
fieldNames.push(`'${fieldName}'`);
|
|
277
|
+
blocks.fieldNames.push(`'${fieldName}'`);
|
|
267
278
|
if (field.isRequired) {
|
|
268
|
-
requiredFields.push(`'${fieldName}'`);
|
|
279
|
+
blocks.requiredFields.push(`'${fieldName}'`);
|
|
269
280
|
}
|
|
270
281
|
}
|
|
271
282
|
function handleScalarField({ field, model, context, imports, sharedValidations, }) {
|
|
@@ -288,16 +299,38 @@ function handleScalarField({ field, model, context, imports, sharedValidations,
|
|
|
288
299
|
sharedValidations.push(`${context.import.detectDelta._utils.validation.int.name}({item, fieldName: '${field.name}'})`);
|
|
289
300
|
}
|
|
290
301
|
}
|
|
291
|
-
function handleRelationField({ field, context, imports,
|
|
302
|
+
function handleRelationField({ field, model, context, imports, blocks, }) {
|
|
292
303
|
const relatedModel = context.models.get(field.referencedModelName);
|
|
293
304
|
if (relatedModel.repository.kind === 'NoRepository') {
|
|
294
305
|
return;
|
|
295
306
|
}
|
|
296
307
|
imports.addType(relatedModel.types.id);
|
|
297
308
|
imports.add(context.import.detectDelta._utils.validation.referenceField);
|
|
309
|
+
imports.add(context.import.detectDelta._utils.resolveRelationKey);
|
|
310
|
+
const resolveRelationKeyFn = context.import.detectDelta._utils.resolveRelationKey.name;
|
|
311
|
+
// Generate key resolution code for this relation field using the shared utility
|
|
312
|
+
// This resolves keyField values to IDs BEFORE delta calculation
|
|
313
|
+
const nullCheck = field.isRequired ? '' : `if (item.${field.name} !== null && item.${field.name} !== undefined) `;
|
|
314
|
+
blocks.relationKeyResolutions.push(`${nullCheck}{
|
|
315
|
+
const result = await ${resolveRelationKeyFn}({
|
|
316
|
+
value: item.${field.name},
|
|
317
|
+
fieldName: '${field.name}',
|
|
318
|
+
relatedModel: '${field.referencedModelName}',
|
|
319
|
+
idMapEntry: idMap.${relatedModel.decoder.dataModelEntry},
|
|
320
|
+
keyMapEntry: keyMap.${relatedModel.decoder.dataModelEntry},
|
|
321
|
+
getById: (id) => data.${relatedModel.repository.dataServiceVariable}.get(id),
|
|
322
|
+
getByKey: (key) => data.${relatedModel.repository.dataServiceVariable}.getByKey(key),
|
|
323
|
+
})
|
|
324
|
+
if ('error' in result) {
|
|
325
|
+
errors.push(result.error as ${model.import.delta.errors.name})
|
|
326
|
+
} else {
|
|
327
|
+
item.${field.name} = result.id
|
|
328
|
+
}
|
|
329
|
+
}`);
|
|
298
330
|
// Foreign key value could be either an id OR a keyField value of the related model.
|
|
299
|
-
//
|
|
300
|
-
|
|
331
|
+
// This validation runs AFTER key resolution, so it now validates that the resolved ID exists.
|
|
332
|
+
// We keep validation as a safety check but the key resolution already handled the lookup.
|
|
333
|
+
blocks.sharedValidations.push(` ${context.import.detectDelta._utils.validation.referenceField.name}({
|
|
301
334
|
item,
|
|
302
335
|
fieldName: '${field.name}',
|
|
303
336
|
relatedModel: '${field.referencedModelName}',
|
|
@@ -316,6 +349,77 @@ function handleRelationField({ field, context, imports, sharedValidations, }) {
|
|
|
316
349
|
},
|
|
317
350
|
})`);
|
|
318
351
|
}
|
|
352
|
+
function handleDiscriminatedUnionField({ field, model, context, imports, blocks, }) {
|
|
353
|
+
// Handle relation fields in common fields
|
|
354
|
+
for (const f of field.commonFields.values()) {
|
|
355
|
+
if (f.kind === 'relation') {
|
|
356
|
+
handleDiscriminatedUnionRelationField({
|
|
357
|
+
duField: field,
|
|
358
|
+
relationField: f,
|
|
359
|
+
model,
|
|
360
|
+
context,
|
|
361
|
+
imports,
|
|
362
|
+
blocks,
|
|
363
|
+
memberType: null,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
// Handle relation fields in member-specific fields
|
|
368
|
+
for (const member of field.members.values()) {
|
|
369
|
+
for (const f of member.fields.values()) {
|
|
370
|
+
if (f.kind === 'relation') {
|
|
371
|
+
handleDiscriminatedUnionRelationField({
|
|
372
|
+
duField: field,
|
|
373
|
+
relationField: f,
|
|
374
|
+
model,
|
|
375
|
+
context,
|
|
376
|
+
imports,
|
|
377
|
+
blocks,
|
|
378
|
+
memberType: member.type,
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
function handleDiscriminatedUnionRelationField({ duField, relationField, model, context, imports, blocks, memberType, }) {
|
|
385
|
+
const relatedModel = context.models.get(relationField.referencedModelName);
|
|
386
|
+
if (relatedModel.repository.kind === 'NoRepository') {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
imports.addType(relatedModel.types.id);
|
|
390
|
+
imports.add(context.import.detectDelta._utils.validation.referenceField);
|
|
391
|
+
imports.add(context.import.detectDelta._utils.resolveRelationKey);
|
|
392
|
+
const resolveRelationKeyFn = context.import.detectDelta._utils.resolveRelationKey.name;
|
|
393
|
+
// Generate key resolution code for this relation field inside a discriminated union
|
|
394
|
+
// This resolves keyField values to IDs BEFORE delta calculation
|
|
395
|
+
const duAccess = `item.${duField.name}`;
|
|
396
|
+
const fieldAccess = `${duAccess}.${relationField.name}`;
|
|
397
|
+
// Build condition parts
|
|
398
|
+
const conditions = [];
|
|
399
|
+
if (memberType) {
|
|
400
|
+
conditions.push(`${duAccess}.type === '${memberType}'`);
|
|
401
|
+
}
|
|
402
|
+
if (!relationField.isRequired) {
|
|
403
|
+
conditions.push(`${fieldAccess} !== null && ${fieldAccess} !== undefined`);
|
|
404
|
+
}
|
|
405
|
+
const conditionStr = conditions.length > 0 ? `if (${conditions.join(' && ')}) ` : '';
|
|
406
|
+
blocks.relationKeyResolutions.push(`${conditionStr}{
|
|
407
|
+
const result = await ${resolveRelationKeyFn}({
|
|
408
|
+
value: ${fieldAccess},
|
|
409
|
+
fieldName: '${relationField.name}',
|
|
410
|
+
relatedModel: '${relationField.referencedModelName}',
|
|
411
|
+
idMapEntry: idMap.${relatedModel.decoder.dataModelEntry},
|
|
412
|
+
keyMapEntry: keyMap.${relatedModel.decoder.dataModelEntry},
|
|
413
|
+
getById: (id) => data.${relatedModel.repository.dataServiceVariable}.get(id),
|
|
414
|
+
getByKey: (key) => data.${relatedModel.repository.dataServiceVariable}.getByKey(key),
|
|
415
|
+
})
|
|
416
|
+
if ('error' in result) {
|
|
417
|
+
errors.push(result.error as ${model.import.delta.errors.name})
|
|
418
|
+
} else {
|
|
419
|
+
(${duAccess} as Record<string, unknown>).${relationField.name} = result.id
|
|
420
|
+
}
|
|
421
|
+
}`);
|
|
422
|
+
}
|
|
319
423
|
function checkRelatedModel({ relatedModel, blocks: { deleteValidations }, model, context, imports, }) {
|
|
320
424
|
if (relatedModel.name === model.name) {
|
|
321
425
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-function.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/model-function.generator.ts"],"names":[],"mappings":";;AAMA,4EAkBC;AAxBD,iDAA6D;AAE7D,yCAAmE;AAInE,SAAgB,gCAAgC,CAAC,OAAsB,EAAE,KAAkB;IACzF,MAAM,OAAO,GAAG,2BAAe;QAC7B,EAAE;SACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;SACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SACvB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC/C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;SACjD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/D,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACnF,OAAO,QAAQ,CAAC;EAChB,OAAO,CAAC,QAAQ,EAAE;;EAElB,SAAS;;EAET,mBAAmB,EAAE,CAAA;AACvB,CAAC;AAUD,SAAS,gBAAgB,CAAC,EACxB,OAAO,EACP,KAAK,EACL,OAAO,GAKR;IACC,MAAM,WAAW,GAAgB;QAC/B,aAAa,EAAE,EAAE;QACjB,2BAA2B,EAAE,EAAE;QAC/B,oBAAoB,EAAE,EAAE;QACxB,sBAAsB,EAAE,EAAE;QAC1B,0BAA0B,EAAE,EAAE;KAC/B,CAAA;IAED,qCAAqC;IACrC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,qBAAqB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAE/D,MAAM,iBAAiB,GACrB,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC;YACE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;SACvH;QACH,CAAC,CAAC,EAAE,CAAA;IAER,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,WAAW,CAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxF,CAAC;IACD,IAAI,WAAW,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,WAAW,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,WAAW,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAC5F,CAAC;IAED,MAAM,eAAe,GAAG;QACtB,GAAG,iBAAiB;QACpB,GAAG,WAAW,CAAC,2BAA2B;QAC1C,GAAG,WAAW,CAAC,oBAAoB;QACnC,GAAG,WAAW,CAAC,sBAAsB;QACrC,GAAG,WAAW,CAAC,0BAA0B;KAC1C,CAAA;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,eAAe,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;AAC1F,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAOR;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QACzF,KAAK,oBAAoB;YACvB,OAAO,mCAAmC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7F;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,EACvC,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,GAOR;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;IAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAE,CAAA;QAEtE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEzC,WAAW,CAAC,2BAA2B,CAAC,IAAI,CAAC;UACvC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;OACvH,CAAC,CAAA;IACN,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;QACxG,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAA;QAC/G,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3D,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC;UAClC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,YAAY,MAAM,KAAK,CAAC,IAAI;OACvF,CAAC,CAAA;IACN,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAAC,EAC3C,OAAO,EACP,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAOR;IACC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,EAC7B,OAAO,EACP,KAAK,EACL,OAAO,EACP,WAAW,GAMZ;IACC,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACrC,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,oCAAoC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;QACrG,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,YAAY,EACZ,KAAK,EACL,OAAO,EACP,WAAW,GAQZ;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACT,OAAM;QACR,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACjE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAElE,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI;iBACzE,YAAY,CAAC,IAAI;iBACjB,KAAK,CAAC,IAAI;gBACX,YAAY,CAAC,KAAK,CAAC,IAAI;gBACvB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;;WAE/B,CAAC,CAAA;YACN,CAAC;YACD,OAAM;QACR,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,oCAAoC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;YACxG,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACvC,oCAAoC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;gBACxG,CAAC;YACH,CAAC;YACD,OAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AASD,SAAS,0BAA0B,CAAC,EAClC,KAAK,EACL,OAAO,EACP,OAAO,GAKR;IACC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA;IACxD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;SAClC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;SAC3D,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC;SACvD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;SACxD,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAExC,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAA;IAEhI,MAAM,MAAM,GAAsB;QAChC,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;KACtB,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,iBAAiB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IACpH,CAAC;IAED,MAAM,wBAAwB,GAC5B,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC9B,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,wBAAwB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK;QAC5K,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,IAAI,QAAQ,IAAA,oBAAQ,EAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAA;IAErJ,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE7D,MAAM,cAAc,GAClB,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QACjC,CAAC,CAAC,+BAA+B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QAC/H,CAAC,CAAC,yGAAyG,CAAA;IAE/G,yFAAyF;IACzF,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;IAExC,mFAAmF;IACnF,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7E,OAAO;;2BAEkB,KAAK,CAAC,gBAAgB,qCAAqC,OAAO,CAAC,SAAS,CAAC,IAAI;;oBAExF,YAAY;;8BAEF,KAAK,CAAC,+BAA+B;UACzD,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI;WACpC,KAAK,CAAC,KAAK,CAAC,IAAI;IACvB,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI;IACtF,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aACxB,UAAU;oCACa,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;MAEvF,yBAAyB;;aAElB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI;;uBAE7C,YAAY;sBACb,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,aAAa,KAAK,CAAC,UAAU,CAAC,mBAAmB;wCAClD,KAAK,CAAC,UAAU,CAAC,mBAAmB;mDACzB,KAAK,CAAC,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,KAAK,CAAC,IAAI;UAC5F,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;;;yBAGhC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;;qDAGC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YACvE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;cAC/C,wBAAwB;;;yDAGmB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YAC3E,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;kBAC3C,cAAc;;;EAG9B,CAAA;AACF,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,MAAM,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,EACzD,KAAK,EACL,OAAO,EACP,OAAO,GAOR;IACC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAM;IACR,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI;YACP,OAAM;QACR,KAAK,QAAQ;YACX,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;YACxE,MAAK;QACP,KAAK,UAAU;YACb,mBAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;YAC1E,MAAK;QACP,KAAK,MAAM;YACT,MAAK;QACP,KAAK,oBAAoB;YACvB,MAAK;QACP;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,iBAAiB,GAOlB;IACC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAM;IACR,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC/E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QACrE,MAAM,SAAS,GAAG,QAAQ,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;QACpD,iBAAiB,CAAC,IAAI,CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI;;sBAEhD,KAAK,CAAC,IAAI;2CACW,KAAK,CAAC,UAAU,CAAC,mBAAmB,IAAI,SAAS;SACnF,CACJ,CAAA;IACH,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACjF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC7D,iBAAiB,CAAC,IAAI,CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,uBAAuB,KAAK,CAAC,IAAI,KAAK,CAC/F,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,OAAO,EACP,iBAAiB,GAOlB;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAE,CAAA;IACnE,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACpD,OAAM;IACR,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IAExE,oFAAoF;IACpF,oGAAoG;IACpG,iBAAiB,CAAC,IAAI,CACpB,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI;;uBAEjD,KAAK,CAAC,IAAI;0BACP,KAAK,CAAC,mBAAmB;0CACT,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;;gCAEpC,YAAY,CAAC,OAAO,CAAC,cAAc;;;kCAGjC,YAAY,CAAC,OAAO,CAAC,cAAc;;;2CAG1B,YAAY,CAAC,UAAU,CAAC,mBAAmB;;4CAE1C,YAAY,CAAC,UAAU,CAAC,mBAAmB;;;UAG7E,CACP,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,YAAY,EACZ,MAAM,EAAE,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EACL,OAAO,EACP,OAAO,GAOR;IACC,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,OAAM;IACR,CAAC;IACD,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACpD,OAAM;IACR,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACxD,IACE,YAAY,CAAC,IAAI,KAAK,UAAU;YAChC,YAAY,CAAC,mBAAmB,KAAK,KAAK,CAAC,IAAI;YAC/C,CAAC,YAAY,CAAC,UAAU,EACxB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAE5E,MAAM,gBAAgB,GAAG,IAAA,oBAAY,EAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACxD,iBAAiB,CAAC,IAAI,CAAC;;;yBAGF,YAAY,CAAC,IAAI;yBACjB,YAAY,CAAC,IAAI;yCACD,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;2BACjC,YAAY,CAAC,UAAU,CAAC,mBAAmB,eAAe,gBAAgB;;SAE5F,CAAC,CAAA;IACR,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"model-function.generator.js","sourceRoot":"","sources":["../../../../src/backend-import/generators/detect-delta/model-function.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,10 @@ export type BackendImportContext = ActionProvider<ImportActions> & {
|
|
|
48
48
|
/** Shared functions, used by detectDelta model functions */
|
|
49
49
|
_utils: {
|
|
50
50
|
detectModelDelta: Generator.ImportableFunction;
|
|
51
|
+
/** Resolves a relation field key to an ID using lookup maps and database */
|
|
52
|
+
resolveRelationKey: Generator.ImportableFunction;
|
|
53
|
+
/** Ensures all items have IDs - checks DB by key or generates new UUID */
|
|
54
|
+
ensureItemsHaveIds: Generator.ImportableFunction;
|
|
51
55
|
validation: {
|
|
52
56
|
params: Generator.ImportableType;
|
|
53
57
|
referenceField: Generator.ImportableFunction;
|
|
@@ -137,6 +137,8 @@ exports.generator = {
|
|
|
137
137
|
},
|
|
138
138
|
_utils: {
|
|
139
139
|
detectModelDelta: { name: Generator.toFunctionName(`detectModelDelta`), location: utilsLocation },
|
|
140
|
+
resolveRelationKey: { name: Generator.toFunctionName(`resolveRelationKey`), location: utilsLocation },
|
|
141
|
+
ensureItemsHaveIds: { name: Generator.toFunctionName(`ensureItemsHaveIds`), location: utilsLocation },
|
|
140
142
|
validation: {
|
|
141
143
|
params: { name: Generator.toTypeName(`ValidationFunctions`), location: utilsLocation },
|
|
142
144
|
referenceField: { name: Generator.toFunctionName(`validateReferenceField`), location: utilsLocation },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.generator.js","sourceRoot":"","sources":["../../src/backend-import/import.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAmC;AAEnC,6DAA8C;AAE9C,wDAO2B;AAC3B,kDAA+E;AAC/E,kEAA0F;AAC1F,sDAAyE;AACzE,kCAAmD;AACnD,0CAA+D;AAC/D,oCAAsD;AAEtD,0FAAyF;AACzF,mHAA0G;AAC1G,iHAAyG;AACzG,iGAAqG;AACrG,+EAAoF;AACpF,kFAA2E;AAC3E,oFAA6E;
|
|
1
|
+
{"version":3,"file":"import.generator.js","sourceRoot":"","sources":["../../src/backend-import/import.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,41 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.generateDataModelDecoder = generateDataModelDecoder;
|
|
37
37
|
const Generator = __importStar(require("@postxl/generator"));
|
|
38
|
+
/**
|
|
39
|
+
* Checks if a discriminated union has any relation fields (in common fields or any member).
|
|
40
|
+
*/
|
|
41
|
+
function discriminatedUnionHasRelationFields(field) {
|
|
42
|
+
// Check common fields
|
|
43
|
+
for (const f of field.commonFields.values()) {
|
|
44
|
+
if (f.kind === 'relation') {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Check member fields
|
|
49
|
+
for (const member of field.members.values()) {
|
|
50
|
+
for (const f of member.fields.values()) {
|
|
51
|
+
if (f.kind === 'relation') {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Checks if a model needs lookup maps for Excel encoding.
|
|
60
|
+
* This is true if the model has direct relation fields OR discriminated unions with relation fields.
|
|
61
|
+
*/
|
|
62
|
+
function modelNeedsLookupMaps(model) {
|
|
63
|
+
for (const field of model.fields.values()) {
|
|
64
|
+
if (field.kind === 'relation') {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
if (field.kind === 'discriminatedUnion' && discriminatedUnionHasRelationFields(field)) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
38
73
|
/**
|
|
39
74
|
* Generates the data decoder, aggregating all the models.
|
|
40
75
|
*/
|
|
@@ -49,23 +84,40 @@ function generateDataModelDecoder({ context: { decoders, models } }) {
|
|
|
49
84
|
const encoderExcelEntries = [];
|
|
50
85
|
const decoderExcelEntries = [];
|
|
51
86
|
const transformerExcelEntries = [];
|
|
87
|
+
// Build lookup map type entries for all models (map ID to keyField value)
|
|
88
|
+
const lookupMapTypeEntries = [];
|
|
89
|
+
const lookupMapBuilderEntries = [];
|
|
52
90
|
for (const model of models.values()) {
|
|
53
91
|
imports.addType(model.decoder.flattened.encodedType);
|
|
54
92
|
encodedTypeEntries.push(`${model.decoder.dataModelEntry}: ${model.decoder.flattened.encodedType.name}[] | undefined`);
|
|
55
93
|
imports.addType(model.decoder.excel.encodedType);
|
|
56
94
|
encodedExcelTypeEntries.push(`${model.excelName}: ${model.decoder.excel.encodedType.name}[] | undefined`);
|
|
57
95
|
imports.addType(model.types);
|
|
96
|
+
imports.addType(model.types.id);
|
|
58
97
|
decodedTypeEntries.push(`${model.decoder.dataModelEntry}?: ${model.types.name}[]`);
|
|
59
98
|
imports.add(model.decoder.flattened.encoder);
|
|
60
99
|
encoderEntries.push(`${model.decoder.dataModelEntry}: input.${model.decoder.dataModelEntry}?.map(${model.decoder.flattened.encoder.name}) ?? undefined`);
|
|
61
100
|
imports.add(model.decoder.excel.encoder);
|
|
62
|
-
|
|
101
|
+
// Build lookup map type entry (maps ID to keyField value for this model)
|
|
102
|
+
lookupMapTypeEntries.push(`${model.decoder.dataModelEntry}: Map<${model.types.id.name}, string>`);
|
|
103
|
+
// Build lookup map builder entry
|
|
104
|
+
const keyFieldName = model.keyField.name;
|
|
105
|
+
lookupMapBuilderEntries.push(`${model.decoder.dataModelEntry}: new Map((input.${model.decoder.dataModelEntry} ?? []).map(item => [item.id, String(item.${keyFieldName})]))`);
|
|
63
106
|
imports.add(model.decoder.flattened.decoder.zodDecoder);
|
|
64
107
|
decoderEntries.push(`${model.decoder.dataModelEntry}: z.array(${model.decoder.flattened.decoder.zodDecoder.name}).optional()`);
|
|
65
108
|
imports.add(model.decoder.excel.decoder.zodDecoder);
|
|
66
109
|
decoderExcelEntries.push(`${model.excelName}: z.array(${model.decoder.excel.decoder.zodDecoder.name}).optional()`);
|
|
67
110
|
transformerExcelEntries.push(`${model.decoder.dataModelEntry}: v.${model.excelName} ?? []`);
|
|
68
111
|
}
|
|
112
|
+
// Generate encoder entries for Excel - models with relations (direct or via DU) need lookup maps
|
|
113
|
+
for (const model of models.values()) {
|
|
114
|
+
if (modelNeedsLookupMaps(model)) {
|
|
115
|
+
encoderExcelEntries.push(`${model.excelName}: input.${model.decoder.dataModelEntry}?.map(item => ${model.decoder.excel.encoder.name}(item, lookupMaps)) ?? undefined`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
encoderExcelEntries.push(`${model.excelName}: input.${model.decoder.dataModelEntry}?.map(${model.decoder.excel.encoder.name}) ?? undefined`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
69
121
|
return `
|
|
70
122
|
import * as z from 'zod'
|
|
71
123
|
${imports.generate()}
|
|
@@ -84,6 +136,25 @@ export type ${dataModel.decodedType.name} = {
|
|
|
84
136
|
${decodedTypeEntries.join(',\n')}
|
|
85
137
|
}
|
|
86
138
|
|
|
139
|
+
/**
|
|
140
|
+
* Lookup maps for resolving IDs to keyField values during Excel export.
|
|
141
|
+
* Each map contains ID -> keyField value mappings for a specific model.
|
|
142
|
+
* This is used to export human-readable keys instead of UUIDs in relation fields.
|
|
143
|
+
*/
|
|
144
|
+
export type IdToKeyLookupMaps = {
|
|
145
|
+
${lookupMapTypeEntries.join(',\n')}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Builds lookup maps from the DataModel for ID-to-key resolution during export.
|
|
150
|
+
* These maps allow the Excel encoder to output keyField values instead of IDs for relation fields.
|
|
151
|
+
*/
|
|
152
|
+
function buildIdToKeyLookupMaps(input: ${dataModel.decodedType.name}): IdToKeyLookupMaps {
|
|
153
|
+
return {
|
|
154
|
+
${lookupMapBuilderEntries.join(',\n')}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
87
158
|
export function ${dataModel.encoder.name}(input: ${dataModel.decodedType.name}): ${dataModel.encodedType.name} {
|
|
88
159
|
return {
|
|
89
160
|
${encoderEntries.join(',\n')}
|
|
@@ -109,7 +180,15 @@ export type ${excelDataModel.encodedType.name} = {
|
|
|
109
180
|
${encodedExcelTypeEntries.join(',\n')}
|
|
110
181
|
}
|
|
111
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Encodes a DataModel to Excel format, converting relation IDs to human-readable keys.
|
|
185
|
+
* This allows exported Excel files to contain the same format as imported Excel files,
|
|
186
|
+
* making round-trip import/export consistent.
|
|
187
|
+
*/
|
|
112
188
|
export function ${excelDataModel.encoder.name}(input: ${dataModel.decodedType.name}): ${excelDataModel.encodedType.name} {
|
|
189
|
+
// Build lookup maps for ID-to-key resolution
|
|
190
|
+
const lookupMaps = buildIdToKeyLookupMaps(input)
|
|
191
|
+
|
|
113
192
|
return {
|
|
114
193
|
${encoderExcelEntries.join(',\n')}
|
|
115
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datamodel-decoder.generator.js","sourceRoot":"","sources":["../../src/decoders/datamodel-decoder.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"datamodel-decoder.generator.js","sourceRoot":"","sources":["../../src/decoders/datamodel-decoder.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,11 +37,33 @@ exports.generateDiscriminatedUnionDecoder = generateDiscriminatedUnionDecoder;
|
|
|
37
37
|
const Generator = __importStar(require("@postxl/generator"));
|
|
38
38
|
const FlattenedFieldHelper = __importStar(require("./excel-field-decoder.helper"));
|
|
39
39
|
const FieldDecoder = __importStar(require("./field-decoder.helper"));
|
|
40
|
+
/**
|
|
41
|
+
* Checks if a discriminated union has any relation fields (in common fields or any member).
|
|
42
|
+
*/
|
|
43
|
+
function hasRelationFields(field) {
|
|
44
|
+
// Check common fields
|
|
45
|
+
for (const f of field.commonFields.values()) {
|
|
46
|
+
if (f.kind === 'relation') {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Check member fields
|
|
51
|
+
for (const member of field.members.values()) {
|
|
52
|
+
for (const f of member.fields.values()) {
|
|
53
|
+
if (f.kind === 'relation') {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
40
60
|
function generateDiscriminatedUnionDecoder({ context, model, discriminatedUnion, }) {
|
|
41
61
|
const imports = Generator.ImportGenerator.from(model.decoder.decoder.zodDecoder.location);
|
|
42
62
|
const params = { context, model, discriminatedUnion, field: discriminatedUnion.field, imports };
|
|
43
63
|
// We cannot inline below definitions, as we need to add the imports before
|
|
44
64
|
const decoder = getDecoder(params);
|
|
65
|
+
const flattenedType = getFlattenedType({ discriminatedUnion });
|
|
66
|
+
const flattenedEncoder = getFlattenedEncoder(params);
|
|
45
67
|
const flattenedDecoder = getFlattenedDecoder(params);
|
|
46
68
|
return /* ts */ `
|
|
47
69
|
import * as z from 'zod'
|
|
@@ -49,9 +71,9 @@ ${imports.generate()}
|
|
|
49
71
|
|
|
50
72
|
${decoder}
|
|
51
73
|
|
|
52
|
-
${
|
|
74
|
+
${flattenedType}
|
|
53
75
|
|
|
54
|
-
${
|
|
76
|
+
${flattenedEncoder}
|
|
55
77
|
|
|
56
78
|
${flattenedDecoder}`;
|
|
57
79
|
}
|
|
@@ -89,32 +111,77 @@ function getFlattenedType({ discriminatedUnion }) {
|
|
|
89
111
|
export type ${discriminatedUnion.flattened.decoder.rawInputType.name} = z.infer<typeof ${discriminatedUnion.flattened.decoder.rawInputValidation.name}>
|
|
90
112
|
`;
|
|
91
113
|
}
|
|
92
|
-
function getFlattenedEncoder({ discriminatedUnion, }) {
|
|
114
|
+
function getFlattenedEncoder({ context, discriminatedUnion, field, imports }) {
|
|
115
|
+
const hasRelations = hasRelationFields(field);
|
|
116
|
+
// If there are relation fields, we need the lookup maps type
|
|
117
|
+
if (hasRelations) {
|
|
118
|
+
imports.addTypeImport({
|
|
119
|
+
from: Generator.toBackendModuleLocation('@decoders/data-model.decoder'),
|
|
120
|
+
items: [Generator.toTypeName('IdToKeyLookupMaps')],
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const encoderFields = getEncoderFields({ field, context, hasRelations });
|
|
124
|
+
if (hasRelations) {
|
|
125
|
+
return `
|
|
126
|
+
/**
|
|
127
|
+
* Encodes a ${field.type} discriminated union to a flattened object.
|
|
128
|
+
* When lookupMaps is provided, relation IDs are resolved to human-readable keyField values.
|
|
129
|
+
* When lookupMaps is not provided, IDs are output directly.
|
|
130
|
+
*/
|
|
131
|
+
export function ${discriminatedUnion.flattened.encoder.name}(item: ${field.type}, lookupMaps?: IdToKeyLookupMaps) {
|
|
132
|
+
return {
|
|
133
|
+
${encoderFields.join(',\n')}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
`;
|
|
137
|
+
}
|
|
93
138
|
return `
|
|
94
139
|
/**
|
|
95
|
-
* Encodes a ${
|
|
140
|
+
* Encodes a ${field.type} discriminated union to a flattened object, where each
|
|
96
141
|
* nested field is mapped to a top-level field. This allows serialization to a column structure.
|
|
97
142
|
*/
|
|
98
|
-
export function ${discriminatedUnion.flattened.encoder.name}(item: ${
|
|
143
|
+
export function ${discriminatedUnion.flattened.encoder.name}(item: ${field.type}) {
|
|
99
144
|
return {
|
|
100
|
-
${
|
|
145
|
+
${encoderFields.join(',\n')}
|
|
101
146
|
}
|
|
102
147
|
}
|
|
103
148
|
`;
|
|
104
149
|
}
|
|
105
|
-
function getEncoderFields({ field }) {
|
|
150
|
+
function getEncoderFields({ field, context, hasRelations, }) {
|
|
106
151
|
const result = [];
|
|
107
152
|
result.push(`${field.databaseName}: item.type`);
|
|
108
153
|
for (const f of field.commonFields.values()) {
|
|
109
|
-
result.push(
|
|
154
|
+
result.push(getEncoderFieldValue({ f, context, hasRelations, memberType: null }));
|
|
110
155
|
}
|
|
111
156
|
for (const member of field.members.values()) {
|
|
112
157
|
for (const f of member.fields.values()) {
|
|
113
|
-
result.push(
|
|
158
|
+
result.push(getEncoderFieldValue({ f, context, hasRelations, memberType: member.type }));
|
|
114
159
|
}
|
|
115
160
|
}
|
|
116
161
|
return result;
|
|
117
162
|
}
|
|
163
|
+
function getEncoderFieldValue({ f, context, hasRelations, memberType, }) {
|
|
164
|
+
const valueExpr = memberType ? `item.type === '${memberType}' ? item.${f.name} : null` : `item.${f.name}`;
|
|
165
|
+
if (f.kind === 'relation' && hasRelations) {
|
|
166
|
+
const referencedModel = context.models.get(f.referencedModelName);
|
|
167
|
+
const lookupExpr = `lookupMaps?.${referencedModel.decoder.dataModelEntry}.get(item.${f.name})`;
|
|
168
|
+
if (memberType) {
|
|
169
|
+
// Member-specific field: check type first, then resolve ID to key
|
|
170
|
+
if (f.isRequired) {
|
|
171
|
+
return `${f.databaseName}: item.type === '${memberType}' ? (${lookupExpr} ?? item.${f.name}) : null`;
|
|
172
|
+
}
|
|
173
|
+
return `${f.databaseName}: item.type === '${memberType}' ? (item.${f.name} === null ? null : (${lookupExpr} ?? item.${f.name})) : null`;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Common field: always present
|
|
177
|
+
if (f.isRequired) {
|
|
178
|
+
return `${f.databaseName}: ${lookupExpr} ?? item.${f.name}`;
|
|
179
|
+
}
|
|
180
|
+
return `${f.databaseName}: item.${f.name} === null ? null : (${lookupExpr} ?? item.${f.name})`;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return `${f.databaseName}: ${valueExpr}`;
|
|
184
|
+
}
|
|
118
185
|
function getFlattenedDecoder({ context, model, discriminatedUnion, field, imports }) {
|
|
119
186
|
imports.addTypeImport({ from: context.types.location, items: [field.type] });
|
|
120
187
|
const fieldRawDecoders = [
|