@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.
Files changed (46) hide show
  1. package/dist/cjs/index.js +26 -17
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/entity/foo.d.ts +3 -3
  4. package/dist/cjs/types/__test__/providers/typeorm/serializer/foo.d.ts +4 -5
  5. package/dist/cjs/types/base/serializer.d.ts +8 -5
  6. package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +4 -3
  7. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +4 -3
  8. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +4 -3
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +4 -3
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +4 -3
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +4 -3
  12. package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +4 -3
  13. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +4 -3
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +4 -3
  15. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +4 -3
  16. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +4 -3
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +4 -3
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +4 -3
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +4 -3
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +4 -3
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +4 -3
  22. package/dist/cjs/types/platforms/nest/base/entitySerializer.d.ts +1 -1
  23. package/dist/esm/index.js +26 -17
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/types/__test__/entity/foo.d.ts +3 -3
  26. package/dist/esm/types/__test__/providers/typeorm/serializer/foo.d.ts +4 -5
  27. package/dist/esm/types/base/serializer.d.ts +8 -5
  28. package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +4 -3
  29. package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +4 -3
  30. package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +4 -3
  31. package/dist/esm/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +4 -3
  32. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +4 -3
  33. package/dist/esm/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +4 -3
  34. package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +4 -3
  35. package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +4 -3
  36. package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +4 -3
  37. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +4 -3
  38. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +4 -3
  39. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +4 -3
  40. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +4 -3
  41. package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +4 -3
  42. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +4 -3
  43. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +4 -3
  44. package/dist/esm/types/platforms/nest/base/entitySerializer.d.ts +1 -1
  45. package/dist/index.d.ts +8 -6
  46. 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(entityName) {
142
- this.entityName = entityName;
143
- this.logger = backendCore.Log.getLogger(`${entityName} -> Serializer`);
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
- ...this.getDefinition().columns.map((c) => ({
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
- ...this.getDefinition().columns.map((c) => ({
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
- ...this.getDefinition().columns.map((c) => ({
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
- ...this.getDefinition().columns.map((c) => ({
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() {