@punks/backend-entity-manager 0.0.151 → 0.0.153
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/cjs/index.js +26 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/__test__/entity/foo.d.ts +3 -3
- package/dist/cjs/types/__test__/providers/typeorm/serializer/foo.d.ts +4 -5
- package/dist/cjs/types/base/serializer.d.ts +8 -5
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +4 -3
- package/dist/cjs/types/platforms/nest/base/entitySerializer.d.ts +1 -1
- package/dist/esm/index.js +26 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/__test__/entity/foo.d.ts +3 -3
- package/dist/esm/types/__test__/providers/typeorm/serializer/foo.d.ts +4 -5
- package/dist/esm/types/base/serializer.d.ts +8 -5
- package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +4 -3
- package/dist/esm/types/platforms/nest/base/entitySerializer.d.ts +1 -1
- package/dist/index.d.ts +8 -6
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -138,9 +138,10 @@ class EntitySeeder {
|
|
|
138
138
|
|
|
139
139
|
const DEFAULT_DELIMITER = ";";
|
|
140
140
|
class EntitySerializer {
|
|
141
|
-
constructor(
|
|
142
|
-
this.
|
|
143
|
-
this.
|
|
141
|
+
constructor(services) {
|
|
142
|
+
this.services = services;
|
|
143
|
+
this.entityName = services.getEntityName();
|
|
144
|
+
this.logger = backendCore.Log.getLogger(`${services.getEntityName()} -> Serializer`);
|
|
144
145
|
}
|
|
145
146
|
async export(filters) {
|
|
146
147
|
const entities = await this.loadEntities(filters ?? {});
|
|
@@ -148,35 +149,36 @@ class EntitySerializer {
|
|
|
148
149
|
}
|
|
149
150
|
async import(items) {
|
|
150
151
|
this.logger.info(`Entities import -> started (${items.length} items)`);
|
|
152
|
+
const context = await this.getContext();
|
|
151
153
|
for (const [index, item] of items.entries()) {
|
|
152
|
-
await this.importItem(item);
|
|
154
|
+
await this.importItem(item, context);
|
|
153
155
|
this.logger.info(`Entity imported -> ${index + 1}/${items.length}`);
|
|
154
156
|
}
|
|
155
157
|
this.logger.info(`Entities import -> completed (${items.length} items)`);
|
|
156
158
|
}
|
|
157
159
|
async parse(data, format) {
|
|
160
|
+
const definition = await this.getDefinition();
|
|
158
161
|
switch (format) {
|
|
159
162
|
case exports.EntitySerializationFormat.Csv:
|
|
160
|
-
return this.parseCsv(data);
|
|
163
|
+
return this.parseCsv(data, definition);
|
|
161
164
|
case exports.EntitySerializationFormat.Xlsx:
|
|
162
|
-
return this.parseXlsx(data);
|
|
165
|
+
return this.parseXlsx(data, definition);
|
|
163
166
|
default:
|
|
164
167
|
throw new Error(`Format ${format} not supported`);
|
|
165
168
|
}
|
|
166
169
|
}
|
|
167
|
-
parseCsv(data) {
|
|
170
|
+
parseCsv(data, definition) {
|
|
168
171
|
const records = backendCore.csvParse(data, DEFAULT_DELIMITER);
|
|
169
|
-
return records.map((x) => this.convertSheetRecord(x));
|
|
172
|
+
return records.map((x) => this.convertSheetRecord(x, definition));
|
|
170
173
|
}
|
|
171
|
-
parseXlsx(data) {
|
|
174
|
+
parseXlsx(data, definition) {
|
|
172
175
|
const records = backendCore.excelParse(data);
|
|
173
|
-
return records.map((x) => this.convertSheetRecord(x));
|
|
176
|
+
return records.map((x) => this.convertSheetRecord(x, definition));
|
|
174
177
|
}
|
|
175
|
-
convertSheetRecord(record) {
|
|
178
|
+
convertSheetRecord(record, definition) {
|
|
176
179
|
if (!record._type || record._type !== this.entityName) {
|
|
177
180
|
throw new Error(`Invalid record type ${record._type} -> record: \n${JSON.stringify(record)}`);
|
|
178
181
|
}
|
|
179
|
-
const definition = this.getDefinition();
|
|
180
182
|
const entity = {};
|
|
181
183
|
for (const column of definition.columns) {
|
|
182
184
|
entity[column.selector] = this.parseColumnValue(record, column);
|
|
@@ -199,6 +201,7 @@ class EntitySerializer {
|
|
|
199
201
|
format,
|
|
200
202
|
refDate: new Date(),
|
|
201
203
|
});
|
|
204
|
+
const definition = await this.getDefinition();
|
|
202
205
|
switch (format) {
|
|
203
206
|
case exports.EntitySerializationFormat.Csv:
|
|
204
207
|
return {
|
|
@@ -209,7 +212,7 @@ class EntitySerializer {
|
|
|
209
212
|
name: "_type",
|
|
210
213
|
value: () => this.entityName,
|
|
211
214
|
},
|
|
212
|
-
...
|
|
215
|
+
...definition.columns.map((c) => ({
|
|
213
216
|
name: c.name,
|
|
214
217
|
value: () => c.sampleValue ?? "",
|
|
215
218
|
})),
|
|
@@ -229,7 +232,7 @@ class EntitySerializer {
|
|
|
229
232
|
header: "_type",
|
|
230
233
|
value: () => this.entityName,
|
|
231
234
|
},
|
|
232
|
-
...
|
|
235
|
+
...definition.columns.map((c) => ({
|
|
233
236
|
header: c.name,
|
|
234
237
|
value: () => c.sampleValue ?? "",
|
|
235
238
|
headerSize: c.colSpan,
|
|
@@ -244,11 +247,17 @@ class EntitySerializer {
|
|
|
244
247
|
async serialize(data, format) {
|
|
245
248
|
return await this.buildExportFile(data, format);
|
|
246
249
|
}
|
|
250
|
+
async getContext() {
|
|
251
|
+
return (await this.services
|
|
252
|
+
.resolveAuthenticationContextProvider()
|
|
253
|
+
?.getContext());
|
|
254
|
+
}
|
|
247
255
|
async buildExportFile(data, format) {
|
|
248
256
|
const fileName = this.buildExportFileName({
|
|
249
257
|
format,
|
|
250
258
|
refDate: new Date(),
|
|
251
259
|
});
|
|
260
|
+
const definition = await this.getDefinition();
|
|
252
261
|
switch (format) {
|
|
253
262
|
case exports.EntitySerializationFormat.Csv:
|
|
254
263
|
return {
|
|
@@ -259,7 +268,7 @@ class EntitySerializer {
|
|
|
259
268
|
name: "_type",
|
|
260
269
|
value: () => this.entityName,
|
|
261
270
|
},
|
|
262
|
-
...
|
|
271
|
+
...definition.columns.map((c) => ({
|
|
263
272
|
name: c.name,
|
|
264
273
|
value: (item) => this.getColumnValue(item, c),
|
|
265
274
|
})),
|
|
@@ -279,7 +288,7 @@ class EntitySerializer {
|
|
|
279
288
|
header: "_type",
|
|
280
289
|
value: () => this.entityName,
|
|
281
290
|
},
|
|
282
|
-
...
|
|
291
|
+
...definition.columns.map((c) => ({
|
|
283
292
|
header: c.name,
|
|
284
293
|
value: (item) => this.getColumnValue(item, c),
|
|
285
294
|
headerSize: c.colSpan,
|
|
@@ -2320,7 +2329,7 @@ class NestEntityManager {
|
|
|
2320
2329
|
|
|
2321
2330
|
class NestEntitySerializer extends EntitySerializer {
|
|
2322
2331
|
constructor(entityName, registry) {
|
|
2323
|
-
super(entityName);
|
|
2332
|
+
super(registry.resolveEntityServicesCollection(entityName));
|
|
2324
2333
|
this.registry = registry;
|
|
2325
2334
|
}
|
|
2326
2335
|
get manager() {
|