@postxl/generator 0.9.0 → 0.9.2
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.
|
@@ -64,7 +64,7 @@ export class ${meta.data.repositoryClassName} implements Repository<
|
|
|
64
64
|
|
|
65
65
|
${relations
|
|
66
66
|
.map((r) => `
|
|
67
|
-
protected ${r.name}Map: Map<${r.meta.types.brandedIdType},
|
|
67
|
+
protected ${r.name}Map: Map<${r.meta.types.brandedIdType}, Map<${model.brandedIdType}, ${model.typeName}>> = new Map()
|
|
68
68
|
`)
|
|
69
69
|
.join('\n')}
|
|
70
70
|
|
|
@@ -99,7 +99,7 @@ export class ${meta.data.repositoryClassName} implements Repository<
|
|
|
99
99
|
|
|
100
100
|
for (const rawItem of data) {
|
|
101
101
|
const item = this.${decoder}(rawItem)
|
|
102
|
-
this.
|
|
102
|
+
this.set(item)
|
|
103
103
|
|
|
104
104
|
${model.defaultField ? defaultValueInitFn : ''}
|
|
105
105
|
${uniqueStringFields.map((f) => `this.uniqueIds.${f.name}.set(item.${f.name}, item)`).join('\n')}
|
|
@@ -325,8 +325,10 @@ export class ${meta.data.repositoryClassName} implements Repository<
|
|
|
325
325
|
/**
|
|
326
326
|
* Function to retrieve all ${(0, string_1.pluralize)(model.name)} that are related to a ${r.name}
|
|
327
327
|
*/
|
|
328
|
-
public ${r.fieldMeta.getByForeignKeyMethodFnName}(id: ${r.meta.types.brandedIdType}):
|
|
329
|
-
|
|
328
|
+
public ${r.fieldMeta.getByForeignKeyMethodFnName}(id: ${r.meta.types.brandedIdType}): Map<${model.brandedIdType},${model.typeName}> {
|
|
329
|
+
const result = this.${r.name}Map.get(id)
|
|
330
|
+
if (!result) return new Map()
|
|
331
|
+
return result
|
|
330
332
|
}
|
|
331
333
|
|
|
332
334
|
/**
|
|
@@ -335,7 +337,7 @@ export class ${meta.data.repositoryClassName} implements Repository<
|
|
|
335
337
|
public ${r.fieldMeta.getByForeignKeyIdsMethodFnName}(id: ${r.meta.types.brandedIdType}): ${model.brandedIdType}[] {
|
|
336
338
|
const s = this.${r.name}Map.get(id)
|
|
337
339
|
if (!s) return []
|
|
338
|
-
return Array.from(s)
|
|
340
|
+
return Array.from(s.keys())
|
|
339
341
|
}
|
|
340
342
|
`)
|
|
341
343
|
.join('\n')}
|
|
@@ -387,12 +389,12 @@ export class ${meta.data.repositoryClassName} implements Repository<
|
|
|
387
389
|
${relations
|
|
388
390
|
.map((r) => `
|
|
389
391
|
${!r.isRequired ? `if (item.${r.name}) {` : ''}
|
|
390
|
-
let ${r.name}
|
|
391
|
-
if (!${r.name}
|
|
392
|
-
${r.name}
|
|
393
|
-
this.${r.name}Map.set(item.${r.name}, ${r.name}
|
|
392
|
+
let ${r.name}Map = this.${r.name}Map.get(item.${r.name})
|
|
393
|
+
if (!${r.name}Map) {
|
|
394
|
+
${r.name}Map = new Map()
|
|
395
|
+
this.${r.name}Map.set(item.${r.name}, ${r.name}Map)
|
|
394
396
|
}
|
|
395
|
-
${r.name}
|
|
397
|
+
${r.name}Map.set(item.id, item)
|
|
396
398
|
${!r.isRequired ? `}` : ''}
|
|
397
399
|
`)
|
|
398
400
|
.join('\n')}
|
|
@@ -408,10 +410,10 @@ export class ${meta.data.repositoryClassName} implements Repository<
|
|
|
408
410
|
${relations
|
|
409
411
|
.map((r) => `
|
|
410
412
|
${!r.isRequired ? `if (item.${r.name}) {` : ''}
|
|
411
|
-
const ${r.name}
|
|
412
|
-
if (${r.name}
|
|
413
|
-
${r.name}
|
|
414
|
-
if (${r.name}
|
|
413
|
+
const ${r.name}Map = this.${r.name}Map.get(item.${r.name})
|
|
414
|
+
if (${r.name}Map) {
|
|
415
|
+
${r.name}Map.delete(item.id)
|
|
416
|
+
if (${r.name}Map.size === 0) {
|
|
415
417
|
this.${r.name}Map.delete(item.${r.name})
|
|
416
418
|
}
|
|
417
419
|
}
|
package/dist/lib/meta.js
CHANGED
|
@@ -156,8 +156,8 @@ function getFieldMetadata({ field }) {
|
|
|
156
156
|
const PascalCase = (0, string_1.toPascalCase)(field.name);
|
|
157
157
|
return {
|
|
158
158
|
tsFieldName: Types.toVariableName((0, string_1.toCamelCase)(field.name)),
|
|
159
|
-
getByForeignKeyMethodFnName: Types.toFunction(`
|
|
160
|
-
getByForeignKeyIdsMethodFnName: Types.toFunction(`
|
|
159
|
+
getByForeignKeyMethodFnName: Types.toFunction(`getItemsFor${PascalCase}`),
|
|
160
|
+
getByForeignKeyIdsMethodFnName: Types.toFunction(`getIdsFor${PascalCase}`),
|
|
161
161
|
};
|
|
162
162
|
// switch (field.kind) {
|
|
163
163
|
// case 'id':
|