@punks/backend-entity-manager 0.0.152 → 0.0.154

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 (44) hide show
  1. package/dist/cjs/index.js +17 -12
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/entity/foo.d.ts +1 -1
  4. package/dist/cjs/types/__test__/providers/typeorm/serializer/foo.d.ts +1 -1
  5. package/dist/cjs/types/base/serializer.d.ts +1 -1
  6. package/dist/cjs/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +1 -1
  7. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +1 -1
  8. package/dist/cjs/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +1 -1
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +1 -1
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +1 -1
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +1 -1
  12. package/dist/cjs/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +1 -1
  13. package/dist/cjs/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +1 -1
  14. package/dist/cjs/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +1 -1
  15. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
  16. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +1 -1
  17. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
  18. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +1 -1
  19. package/dist/cjs/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +1 -1
  20. package/dist/cjs/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +1 -1
  21. package/dist/cjs/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
  22. package/dist/esm/index.js +17 -12
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/types/__test__/entity/foo.d.ts +1 -1
  25. package/dist/esm/types/__test__/providers/typeorm/serializer/foo.d.ts +1 -1
  26. package/dist/esm/types/base/serializer.d.ts +1 -1
  27. package/dist/esm/types/platforms/nest/__test__/server/entities/appCompanies/appCompany.serializer.d.ts +1 -1
  28. package/dist/esm/types/platforms/nest/__test__/server/entities/appDirectories/appDirectory.serializer.d.ts +1 -1
  29. package/dist/esm/types/platforms/nest/__test__/server/entities/appDivisions/appDivision.serializer.d.ts +1 -1
  30. package/dist/esm/types/platforms/nest/__test__/server/entities/appEmailLogs/appEmailLog.serializer.d.ts +1 -1
  31. package/dist/esm/types/platforms/nest/__test__/server/entities/appEntityVersions/appEntityVersion.serializer.d.ts +1 -1
  32. package/dist/esm/types/platforms/nest/__test__/server/entities/appFileReferences/appFileReference.serializer.d.ts +1 -1
  33. package/dist/esm/types/platforms/nest/__test__/server/entities/appOrganizations/appOrganization.serializer.d.ts +1 -1
  34. package/dist/esm/types/platforms/nest/__test__/server/entities/appRoles/appRole.serializer.d.ts +1 -1
  35. package/dist/esm/types/platforms/nest/__test__/server/entities/appTenants/appTenant.serializer.d.ts +1 -1
  36. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroupMembers/appUserGroupMember.serializer.d.ts +1 -1
  37. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserGroups/appUserGroup.serializer.d.ts +1 -1
  38. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserProfiles/appUserProfile.serializer.d.ts +1 -1
  39. package/dist/esm/types/platforms/nest/__test__/server/entities/appUserRoles/appUserRole.serializer.d.ts +1 -1
  40. package/dist/esm/types/platforms/nest/__test__/server/entities/appUsers/appUser.serializer.d.ts +1 -1
  41. package/dist/esm/types/platforms/nest/__test__/server/entities/crmContacts/crmContact.serializer.d.ts +1 -1
  42. package/dist/esm/types/platforms/nest/__test__/server/entities/foos/foo.serializer.d.ts +1 -1
  43. package/dist/index.d.ts +1 -1
  44. package/package.json +1 -1
@@ -80,7 +80,7 @@ export declare class FooSerializer extends EntitySerializer<FooEntity, FooEntity
80
80
  protected loadEntities(filters?: FooSearchParameters | undefined): Promise<FooEntity[]>;
81
81
  protected convertToSheetItems(entities: FooEntity[]): Promise<FooEntity[]>;
82
82
  protected importItem(item: FooEntity): Promise<FooEntity>;
83
- protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
83
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<FooEntity>>;
84
84
  }
85
85
  export declare class FooConverter implements IEntityConverter<FooEntity, FooDto, FooListItemDto, FooCreateDto, FooUpdateDto> {
86
86
  toListItemDto(entity: FooEntity): FooListItemDto;
@@ -8,5 +8,5 @@ export declare class FooSerializer extends EntitySerializer<FooEntity, FooEntity
8
8
  protected loadEntities(filters?: FooSearchParameters | undefined): Promise<FooEntity[]>;
9
9
  protected convertToSheetItems(entities: FooEntity[]): Promise<FooEntity[]>;
10
10
  protected importItem(item: FooEntity): Promise<FooEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<FooEntity>>;
12
12
  }
@@ -17,7 +17,7 @@ export declare abstract class EntitySerializer<TEntity, TEntityId, TEntitySearch
17
17
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
18
18
  private buildSampleFile;
19
19
  serialize(data: TSheetItem[], format: EntitySerializationFormat): Promise<EntityExportFile>;
20
- protected abstract getDefinition(): EntitySerializerSheetDefinition<TSheetItem>;
20
+ protected abstract getDefinition(context: TContext): Promise<EntitySerializerSheetDefinition<TSheetItem>>;
21
21
  protected abstract loadEntities(filters?: TEntitySearchParameters): Promise<TEntity[]>;
22
22
  protected abstract convertToSheetItems(entities: TEntity[]): Promise<TSheetItem[]>;
23
23
  protected abstract importItem(item: TSheetItem, context: TContext): Promise<TEntity>;
@@ -7,5 +7,5 @@ export declare class AppCompanySerializer extends NestEntitySerializer<AppCompan
7
7
  protected loadEntities(filters: AppCompanySearchParameters): Promise<AppCompanyEntity[]>;
8
8
  protected convertToSheetItems(entities: AppCompanyEntity[]): Promise<AppCompanyEntity[]>;
9
9
  protected importItem(item: AppCompanySheetItem, context: AppAuthContext): Promise<AppCompanyEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppCompanyEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppCompanyEntity>>;
11
11
  }
@@ -8,5 +8,5 @@ export declare class AppDirectorySerializer extends NestEntitySerializer<AppDire
8
8
  protected loadEntities(filters: AppDirectorySearchParameters): Promise<AppDirectoryEntity[]>;
9
9
  protected convertToSheetItems(entities: AppDirectoryEntity[]): Promise<AppDirectoryEntity[]>;
10
10
  protected importItem(item: AppDirectorySheetItem, context: AppAuthContext): Promise<AppDirectoryEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<AppDirectoryEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppDirectoryEntity>>;
12
12
  }
@@ -7,5 +7,5 @@ export declare class AppDivisionSerializer extends NestEntitySerializer<AppDivis
7
7
  protected loadEntities(filters: AppDivisionSearchParameters): Promise<AppDivisionEntity[]>;
8
8
  protected convertToSheetItems(entities: AppDivisionEntity[]): Promise<AppDivisionEntity[]>;
9
9
  protected importItem(item: AppDivisionSheetItem, context: AppAuthContext): Promise<AppDivisionEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppDivisionEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppDivisionEntity>>;
11
11
  }
@@ -8,5 +8,5 @@ export declare class AppEmailLogSerializer extends NestEntitySerializer<AppEmail
8
8
  protected loadEntities(filters: AppEmailLogSearchParameters): Promise<AppEmailLogEntity[]>;
9
9
  protected convertToSheetItems(entities: AppEmailLogEntity[]): Promise<AppEmailLogSheetItem[]>;
10
10
  protected importItem(item: AppEmailLogSheetItem, context: AppAuthContext): Promise<AppEmailLogEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<AppEmailLogEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppEmailLogEntity>>;
12
12
  }
@@ -8,5 +8,5 @@ export declare class AppEntityVersionSerializer extends NestEntitySerializer<App
8
8
  protected loadEntities(filters: AppEntityVersionSearchParameters): Promise<AppEntityVersionEntity[]>;
9
9
  protected convertToSheetItems(entities: AppEntityVersionEntity[]): Promise<AppEntityVersionSheetItem[]>;
10
10
  protected importItem(item: AppEntityVersionSheetItem, context: AppAuthContext): Promise<AppEntityVersionEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<AppEntityVersionEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppEntityVersionEntity>>;
12
12
  }
@@ -8,5 +8,5 @@ export declare class AppFileReferenceSerializer extends NestEntitySerializer<App
8
8
  protected loadEntities(filters: AppFileReferenceSearchParameters): Promise<AppFileReferenceEntity[]>;
9
9
  protected convertToSheetItems(entities: AppFileReferenceEntity[]): Promise<AppFileReferenceSheetItem[]>;
10
10
  protected importItem(item: AppFileReferenceSheetItem, context: AppAuthContext): Promise<AppFileReferenceEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<AppFileReferenceEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppFileReferenceEntity>>;
12
12
  }
@@ -7,5 +7,5 @@ export declare class AppOrganizationSerializer extends NestEntitySerializer<AppO
7
7
  protected loadEntities(filters: AppOrganizationSearchParameters): Promise<AppOrganizationEntity[]>;
8
8
  protected convertToSheetItems(entities: AppOrganizationEntity[]): Promise<AppOrganizationEntity[]>;
9
9
  protected importItem(item: AppOrganizationSheetItem, context: AppAuthContext): Promise<AppOrganizationEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppOrganizationEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppOrganizationEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppRoleSerializer extends NestEntitySerializer<AppRoleEntit
7
7
  protected loadEntities(filters: AppRoleSearchParameters): Promise<AppRoleEntity[]>;
8
8
  protected convertToSheetItems(entities: AppRoleEntity[]): Promise<AppRoleEntity[]>;
9
9
  protected importItem(item: AppRoleSheetItem, context: AppAuthContext): Promise<AppRoleEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppRoleEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppRoleEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppTenantSerializer extends NestEntitySerializer<AppTenantE
7
7
  protected loadEntities(filters: AppTenantSearchParameters): Promise<AppTenantEntity[]>;
8
8
  protected convertToSheetItems(entities: AppTenantEntity[]): Promise<AppTenantEntity[]>;
9
9
  protected importItem(item: AppTenantSheetItem, context: AppAuthContext): Promise<AppTenantEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppTenantEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppTenantEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppUserGroupMemberSerializer extends NestEntitySerializer<A
7
7
  protected loadEntities(filters: AppUserGroupMemberSearchParameters): Promise<AppUserGroupMemberEntity[]>;
8
8
  protected convertToSheetItems(entities: AppUserGroupMemberEntity[]): Promise<AppUserGroupMemberEntity[]>;
9
9
  protected importItem(item: AppUserGroupMemberSheetItem, context: AppAuthContext): Promise<AppUserGroupMemberEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserGroupMemberEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserGroupMemberEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppUserGroupSerializer extends NestEntitySerializer<AppUser
7
7
  protected loadEntities(filters: AppUserGroupSearchParameters): Promise<AppUserGroupEntity[]>;
8
8
  protected convertToSheetItems(entities: AppUserGroupEntity[]): Promise<AppUserGroupEntity[]>;
9
9
  protected importItem(item: AppUserGroupSheetItem, context: AppAuthContext): Promise<AppUserGroupEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserGroupEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserGroupEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppUserProfileSerializer extends NestEntitySerializer<AppUs
7
7
  protected loadEntities(filters: AppUserProfileSearchParameters): Promise<AppUserProfileEntity[]>;
8
8
  protected convertToSheetItems(entities: AppUserProfileEntity[]): Promise<AppUserProfileEntity[]>;
9
9
  protected importItem(item: AppUserProfileSheetItem, context: AppAuthContext): Promise<AppUserProfileEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserProfileEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserProfileEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppUserRoleSerializer extends NestEntitySerializer<AppUserR
7
7
  protected loadEntities(filters: AppUserRoleSearchParameters): Promise<AppUserRoleEntity[]>;
8
8
  protected convertToSheetItems(entities: AppUserRoleEntity[]): Promise<AppUserRoleEntity[]>;
9
9
  protected importItem(item: AppUserRoleSheetItem, context: AppAuthContext): Promise<AppUserRoleEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserRoleEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserRoleEntity>>;
11
11
  }
@@ -7,5 +7,5 @@ export declare class AppUserSerializer extends NestEntitySerializer<AppUserEntit
7
7
  protected loadEntities(filters: AppUserSearchParameters): Promise<AppUserEntity[]>;
8
8
  protected convertToSheetItems(entities: AppUserEntity[]): Promise<AppUserEntity[]>;
9
9
  protected importItem(item: AppUserSheetItem, context: AppAuthContext): Promise<AppUserEntity>;
10
- protected getDefinition(): EntitySerializerSheetDefinition<AppUserEntity>;
10
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<AppUserEntity>>;
11
11
  }
@@ -8,5 +8,5 @@ export declare class CrmContactSerializer extends NestEntitySerializer<CrmContac
8
8
  protected loadEntities(filters: CrmContactSearchParameters): Promise<CrmContactEntity[]>;
9
9
  protected convertToSheetItems(entities: CrmContactEntity[]): Promise<CrmContactSheetItem[]>;
10
10
  protected importItem(item: CrmContactSheetItem, context: AppAuthContext): Promise<CrmContactEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<CrmContactEntity>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<CrmContactEntity>>;
12
12
  }
@@ -8,5 +8,5 @@ export declare class FooSerializer extends NestEntitySerializer<FooEntity, FooEn
8
8
  protected loadEntities(filters: FooSearchParameters): Promise<FooEntity[]>;
9
9
  protected convertToSheetItems(entities: FooEntity[]): Promise<FooSheetItem[]>;
10
10
  protected importItem(item: FooSheetItem, context: AppAuthContext): Promise<FooEntity>;
11
- protected getDefinition(): EntitySerializerSheetDefinition<FooSheetItem>;
11
+ protected getDefinition(): Promise<EntitySerializerSheetDefinition<FooSheetItem>>;
12
12
  }
package/dist/esm/index.js CHANGED
@@ -149,28 +149,29 @@ class EntitySerializer {
149
149
  this.logger.info(`Entities import -> completed (${items.length} items)`);
150
150
  }
151
151
  async parse(data, format) {
152
+ const context = await this.getContext();
153
+ const definition = await this.getDefinition(context);
152
154
  switch (format) {
153
155
  case EntitySerializationFormat.Csv:
154
- return this.parseCsv(data);
156
+ return this.parseCsv(data, definition);
155
157
  case EntitySerializationFormat.Xlsx:
156
- return this.parseXlsx(data);
158
+ return this.parseXlsx(data, definition);
157
159
  default:
158
160
  throw new Error(`Format ${format} not supported`);
159
161
  }
160
162
  }
161
- parseCsv(data) {
163
+ parseCsv(data, definition) {
162
164
  const records = csvParse(data, DEFAULT_DELIMITER);
163
- return records.map((x) => this.convertSheetRecord(x));
165
+ return records.map((x) => this.convertSheetRecord(x, definition));
164
166
  }
165
- parseXlsx(data) {
167
+ parseXlsx(data, definition) {
166
168
  const records = excelParse(data);
167
- return records.map((x) => this.convertSheetRecord(x));
169
+ return records.map((x) => this.convertSheetRecord(x, definition));
168
170
  }
169
- convertSheetRecord(record) {
171
+ convertSheetRecord(record, definition) {
170
172
  if (!record._type || record._type !== this.entityName) {
171
173
  throw new Error(`Invalid record type ${record._type} -> record: \n${JSON.stringify(record)}`);
172
174
  }
173
- const definition = this.getDefinition();
174
175
  const entity = {};
175
176
  for (const column of definition.columns) {
176
177
  entity[column.selector] = this.parseColumnValue(record, column);
@@ -193,6 +194,8 @@ class EntitySerializer {
193
194
  format,
194
195
  refDate: new Date(),
195
196
  });
197
+ const context = await this.getContext();
198
+ const definition = await this.getDefinition(context);
196
199
  switch (format) {
197
200
  case EntitySerializationFormat.Csv:
198
201
  return {
@@ -203,7 +206,7 @@ class EntitySerializer {
203
206
  name: "_type",
204
207
  value: () => this.entityName,
205
208
  },
206
- ...this.getDefinition().columns.map((c) => ({
209
+ ...definition.columns.map((c) => ({
207
210
  name: c.name,
208
211
  value: () => c.sampleValue ?? "",
209
212
  })),
@@ -223,7 +226,7 @@ class EntitySerializer {
223
226
  header: "_type",
224
227
  value: () => this.entityName,
225
228
  },
226
- ...this.getDefinition().columns.map((c) => ({
229
+ ...definition.columns.map((c) => ({
227
230
  header: c.name,
228
231
  value: () => c.sampleValue ?? "",
229
232
  headerSize: c.colSpan,
@@ -248,6 +251,8 @@ class EntitySerializer {
248
251
  format,
249
252
  refDate: new Date(),
250
253
  });
254
+ const context = await this.getContext();
255
+ const definition = await this.getDefinition(context);
251
256
  switch (format) {
252
257
  case EntitySerializationFormat.Csv:
253
258
  return {
@@ -258,7 +263,7 @@ class EntitySerializer {
258
263
  name: "_type",
259
264
  value: () => this.entityName,
260
265
  },
261
- ...this.getDefinition().columns.map((c) => ({
266
+ ...definition.columns.map((c) => ({
262
267
  name: c.name,
263
268
  value: (item) => this.getColumnValue(item, c),
264
269
  })),
@@ -278,7 +283,7 @@ class EntitySerializer {
278
283
  header: "_type",
279
284
  value: () => this.entityName,
280
285
  },
281
- ...this.getDefinition().columns.map((c) => ({
286
+ ...definition.columns.map((c) => ({
282
287
  header: c.name,
283
288
  value: (item) => this.getColumnValue(item, c),
284
289
  headerSize: c.colSpan,