@punks/backend-entity-manager 0.0.85 → 0.0.88

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.
@@ -68,6 +68,7 @@ export interface FooUpdateDto {
68
68
  };
69
69
  }
70
70
  export declare class FooSerializer extends EntitySerializer<FooEntity> {
71
+ constructor(entityName: string);
71
72
  protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
72
73
  }
73
74
  export declare class FooConverter implements IEntityConverter<FooEntity, FooDto, FooListItemDto, FooCreateDto, FooUpdateDto> {
@@ -1,10 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { EntitySerializationFormat, IEntitySerializer } from "../abstractions";
3
3
  import { EntityExportFile, EntitySerializerSheetDefinition } from "../abstractions/serializer";
4
- import { EntityServiceLocator } from "../providers/services";
5
4
  export declare abstract class EntitySerializer<TEntity> implements IEntitySerializer<TEntity> {
6
- protected readonly services: EntityServiceLocator<TEntity, unknown>;
7
- constructor(services: EntityServiceLocator<TEntity, unknown>);
5
+ protected readonly entityName: string;
6
+ constructor(entityName: string);
8
7
  parse(data: Buffer, format: EntitySerializationFormat): Promise<TEntity[]>;
9
8
  createSample(format: EntitySerializationFormat): Promise<EntityExportFile>;
10
9
  private buildSampleFile;
@@ -1,6 +1,8 @@
1
1
  import { FooEntity } from "../../database/core/entities/foo.entity";
2
2
  import { NestEntitySerializer } from "../../../../base";
3
3
  import { EntitySerializerSheetDefinition } from "../../../../../../abstractions/serializer";
4
+ import { EntityManagerRegistry } from "../../../../ioc/registry";
4
5
  export declare class FooSerializer extends NestEntitySerializer<FooEntity> {
6
+ constructor(registry: EntityManagerRegistry);
5
7
  protected getDefinition(): EntitySerializerSheetDefinition<FooEntity>;
6
8
  }
@@ -1,5 +1,7 @@
1
1
  import { EntitySerializer } from "../../../base/serializer";
2
2
  import { EntityServiceLocator } from "../../../providers/services";
3
+ import { EntityManagerRegistry } from "../ioc";
3
4
  export declare abstract class NestEntitySerializer<TEntity> extends EntitySerializer<TEntity> {
4
- constructor(services: EntityServiceLocator<TEntity, unknown>);
5
+ protected readonly services: EntityServiceLocator<TEntity, unknown>;
6
+ constructor(entityName: string, registry: EntityManagerRegistry);
5
7
  }
@@ -20,6 +20,7 @@ export declare class EntityManagerInitializer {
20
20
  private registerEntities;
21
21
  private executeInitializers;
22
22
  private executeSeeders;
23
+ private registerBucketProviders;
23
24
  private registerEventTrackingProviders;
24
25
  private registerEmailProviders;
25
26
  private registerEmailTemplates;
@@ -36,4 +37,5 @@ export declare class EntityManagerInitializer {
36
37
  private discoverEmailTemplates;
37
38
  private discoverEmailProviders;
38
39
  private discoverEventTrackingProviders;
40
+ private discoverBucketProviders;
39
41
  }
package/dist/esm/index.js CHANGED
@@ -121,8 +121,8 @@ class EntitySeeder {
121
121
  }
122
122
 
123
123
  class EntitySerializer {
124
- constructor(services) {
125
- this.services = services;
124
+ constructor(entityName) {
125
+ this.entityName = entityName;
126
126
  }
127
127
  async parse(data, format) {
128
128
  throw new Error("Method not implemented.");
@@ -151,7 +151,7 @@ class EntitySerializer {
151
151
  contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
152
152
  content: Buffer.from(excelBuild({
153
153
  data: [{}],
154
- sheetName: this.services.getEntityName(),
154
+ sheetName: this.entityName,
155
155
  columns: this.getDefinition().columns.map((c) => ({
156
156
  header: c.name,
157
157
  value: () => c.sampleValue ?? "",
@@ -187,7 +187,7 @@ class EntitySerializer {
187
187
  contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
188
188
  content: Buffer.from(excelBuild({
189
189
  data,
190
- sheetName: this.services.getEntityName(),
190
+ sheetName: this.entityName,
191
191
  columns: this.getDefinition().columns.map((c) => ({
192
192
  header: c.name,
193
193
  value: (item) => this.getColumnValue(item, c),
@@ -210,9 +210,7 @@ class EntitySerializer {
210
210
  : rawValue;
211
211
  }
212
212
  buildExportFileName(input) {
213
- return `${input.refDate
214
- .toISOString()
215
- .replaceAll(":", "_")}_${this.services.getEntityName()}.${input.format}`;
213
+ return `${input.refDate.toISOString().replaceAll(":", "_")}_${this.entityName}.${input.format}`;
216
214
  }
217
215
  }
218
216
 
@@ -255,8 +253,9 @@ class NestEntityManager {
255
253
  }
256
254
 
257
255
  class NestEntitySerializer extends EntitySerializer {
258
- constructor(services) {
259
- super(services);
256
+ constructor(entityName, registry) {
257
+ super(entityName);
258
+ // this.services = registry.resolveEntityServicesCollection(entityName)
260
259
  }
261
260
  }
262
261
 
@@ -20722,6 +20721,7 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
20722
20721
  await this.registerEmailTemplates();
20723
20722
  await this.registerEmailProviders();
20724
20723
  await this.registerEventTrackingProviders();
20724
+ await this.registerBucketProviders();
20725
20725
  await this.executeInitializers(app);
20726
20726
  await this.executeSeeders();
20727
20727
  this.logger.log("Entity manager initialization completed 🚀");
@@ -20793,6 +20793,19 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
20793
20793
  this.logger.log(`Entity seeder initializer ${initializer.discoveredClass.name} initialized 💪`);
20794
20794
  }
20795
20795
  }
20796
+ async registerBucketProviders() {
20797
+ const providers = await this.discoverBucketProviders();
20798
+ if (!providers.length) {
20799
+ this.logger.warn("No bucket providers found ⚠️");
20800
+ return;
20801
+ }
20802
+ // todo: handle multiple trackers
20803
+ this.registry
20804
+ .getContainer()
20805
+ .getEntitiesServicesLocator()
20806
+ .registerBucketProvider(providers[0].discoveredClass.instance);
20807
+ this.logger.log(`Bucket provider ${providers[0].discoveredClass.name} registered 🚜`);
20808
+ }
20796
20809
  async registerEventTrackingProviders() {
20797
20810
  const providers = await this.discoverEventTrackingProviders();
20798
20811
  if (!providers.length) {
@@ -20875,6 +20888,9 @@ let EntityManagerInitializer = EntityManagerInitializer_1 = class EntityManagerI
20875
20888
  async discoverEventTrackingProviders() {
20876
20889
  return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.EventsTracker);
20877
20890
  }
20891
+ async discoverBucketProviders() {
20892
+ return await this.discover.providersWithMetaAtKey(EntityManagerSymbols.BucketProvider);
20893
+ }
20878
20894
  };
20879
20895
  EntityManagerInitializer = EntityManagerInitializer_1 = __decorate([
20880
20896
  Injectable(),