@punks/backend-entity-manager 0.0.152 → 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 (44) hide show
  1. package/dist/cjs/index.js +14 -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 +14 -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(): 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,28 @@ class EntitySerializer {
149
149
  this.logger.info(`Entities import -> completed (${items.length} items)`);
150
150
  }
151
151
  async parse(data, format) {
152
+ const definition = await this.getDefinition();
152
153
  switch (format) {
153
154
  case EntitySerializationFormat.Csv:
154
- return this.parseCsv(data);
155
+ return this.parseCsv(data, definition);
155
156
  case EntitySerializationFormat.Xlsx:
156
- return this.parseXlsx(data);
157
+ return this.parseXlsx(data, definition);
157
158
  default:
158
159
  throw new Error(`Format ${format} not supported`);
159
160
  }
160
161
  }
161
- parseCsv(data) {
162
+ parseCsv(data, definition) {
162
163
  const records = csvParse(data, DEFAULT_DELIMITER);
163
- return records.map((x) => this.convertSheetRecord(x));
164
+ return records.map((x) => this.convertSheetRecord(x, definition));
164
165
  }
165
- parseXlsx(data) {
166
+ parseXlsx(data, definition) {
166
167
  const records = excelParse(data);
167
- return records.map((x) => this.convertSheetRecord(x));
168
+ return records.map((x) => this.convertSheetRecord(x, definition));
168
169
  }
169
- convertSheetRecord(record) {
170
+ convertSheetRecord(record, definition) {
170
171
  if (!record._type || record._type !== this.entityName) {
171
172
  throw new Error(`Invalid record type ${record._type} -> record: \n${JSON.stringify(record)}`);
172
173
  }
173
- const definition = this.getDefinition();
174
174
  const entity = {};
175
175
  for (const column of definition.columns) {
176
176
  entity[column.selector] = this.parseColumnValue(record, column);
@@ -193,6 +193,7 @@ class EntitySerializer {
193
193
  format,
194
194
  refDate: new Date(),
195
195
  });
196
+ const definition = await this.getDefinition();
196
197
  switch (format) {
197
198
  case EntitySerializationFormat.Csv:
198
199
  return {
@@ -203,7 +204,7 @@ class EntitySerializer {
203
204
  name: "_type",
204
205
  value: () => this.entityName,
205
206
  },
206
- ...this.getDefinition().columns.map((c) => ({
207
+ ...definition.columns.map((c) => ({
207
208
  name: c.name,
208
209
  value: () => c.sampleValue ?? "",
209
210
  })),
@@ -223,7 +224,7 @@ class EntitySerializer {
223
224
  header: "_type",
224
225
  value: () => this.entityName,
225
226
  },
226
- ...this.getDefinition().columns.map((c) => ({
227
+ ...definition.columns.map((c) => ({
227
228
  header: c.name,
228
229
  value: () => c.sampleValue ?? "",
229
230
  headerSize: c.colSpan,
@@ -248,6 +249,7 @@ class EntitySerializer {
248
249
  format,
249
250
  refDate: new Date(),
250
251
  });
252
+ const definition = await this.getDefinition();
251
253
  switch (format) {
252
254
  case EntitySerializationFormat.Csv:
253
255
  return {
@@ -258,7 +260,7 @@ class EntitySerializer {
258
260
  name: "_type",
259
261
  value: () => this.entityName,
260
262
  },
261
- ...this.getDefinition().columns.map((c) => ({
263
+ ...definition.columns.map((c) => ({
262
264
  name: c.name,
263
265
  value: (item) => this.getColumnValue(item, c),
264
266
  })),
@@ -278,7 +280,7 @@ class EntitySerializer {
278
280
  header: "_type",
279
281
  value: () => this.entityName,
280
282
  },
281
- ...this.getDefinition().columns.map((c) => ({
283
+ ...definition.columns.map((c) => ({
282
284
  header: c.name,
283
285
  value: (item) => this.getColumnValue(item, c),
284
286
  headerSize: c.colSpan,