@punks/backend-entity-manager 0.0.392 → 0.0.394

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 CHANGED
@@ -1115,37 +1115,53 @@ class EntityUpsertCommand {
1115
1115
  this.services = services;
1116
1116
  }
1117
1117
  async execute(id, data) {
1118
- const entity = await this.adaptEntity(data);
1118
+ const entity = await this.adaptEntity(id, data);
1119
1119
  await this.authorize(id, entity);
1120
- const updatedEntity = await this.upsertEntity(id, entity);
1121
- await this.versionEntity(id, updatedEntity);
1120
+ if (id) {
1121
+ const updatedEntity = await this.services
1122
+ .resolveRepository()
1123
+ .upsert(id, entity);
1124
+ await this.versionEntity(id, updatedEntity);
1125
+ await this.services
1126
+ .resolveEventsManager()
1127
+ .processEntityUpdatedEvent(updatedEntity);
1128
+ return {
1129
+ id,
1130
+ };
1131
+ }
1132
+ const createdItem = await this.services.resolveRepository().create(entity);
1133
+ // todo: parametrize id field
1134
+ const newId = createdItem.id;
1135
+ await this.versionEntity(newId, createdItem);
1122
1136
  await this.services
1123
1137
  .resolveEventsManager()
1124
- .processEntityUpdatedEvent(updatedEntity);
1138
+ .processEntityCreatedEvent(createdItem);
1125
1139
  return {
1126
- id,
1140
+ id: newId,
1127
1141
  };
1128
1142
  }
1129
- async upsertEntity(id, entity) {
1130
- return await this.services.resolveRepository().upsert(id, entity);
1131
- }
1132
- async adaptEntity(input) {
1143
+ async adaptEntity(id, input) {
1133
1144
  const context = await this.getContext();
1134
1145
  const adapter = this.services.resolveAdapter();
1135
- return adapter
1146
+ if (!adapter) {
1147
+ return input;
1148
+ }
1149
+ return id
1136
1150
  ? adapter.updateDataToEntity(input, context)
1137
- : input;
1151
+ : adapter.createDataToEntity(input, context);
1138
1152
  }
1139
1153
  async authorize(id, entity) {
1140
1154
  const authorization = this.services.resolveAuthorizationMiddleware();
1141
1155
  if (!authorization) {
1142
1156
  return;
1143
1157
  }
1144
- const currentEntity = await this.services.resolveRepository().get(id);
1145
1158
  const context = await this.getContext();
1146
1159
  if (!context) {
1147
1160
  return;
1148
1161
  }
1162
+ const currentEntity = id
1163
+ ? await this.services.resolveRepository().get(id)
1164
+ : undefined;
1149
1165
  if (currentEntity) {
1150
1166
  const updateResult = await authorization.canUpdate(currentEntity, context);
1151
1167
  if (!updateResult.isAuthorized)
@@ -2983,7 +2999,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
2983
2999
  };
2984
3000
 
2985
3001
  var AwsDynamoDbModule_1;
2986
- const ModuleData$a = {
3002
+ const ModuleData$b = {
2987
3003
  providers: [],
2988
3004
  exports: [],
2989
3005
  };
@@ -2992,13 +3008,13 @@ exports.AwsDynamoDbModule = AwsDynamoDbModule_1 = class AwsDynamoDbModule {
2992
3008
  awsDynamoDbSettings.initialize(input);
2993
3009
  return {
2994
3010
  module: AwsDynamoDbModule_1,
2995
- ...ModuleData$a,
3011
+ ...ModuleData$b,
2996
3012
  };
2997
3013
  }
2998
3014
  };
2999
3015
  exports.AwsDynamoDbModule = AwsDynamoDbModule_1 = __decorate([
3000
3016
  common.Module({
3001
- ...ModuleData$a,
3017
+ ...ModuleData$b,
3002
3018
  })
3003
3019
  ], exports.AwsDynamoDbModule);
3004
3020
 
@@ -24329,7 +24345,7 @@ const getIoCContext = () => {
24329
24345
  return _context;
24330
24346
  };
24331
24347
 
24332
- const ModuleData$9 = {
24348
+ const ModuleData$a = {
24333
24349
  imports: [exports.CustomDiscoveryModule, eventEmitter.EventEmitterModule],
24334
24350
  providers: [
24335
24351
  ...IoC,
@@ -24352,9 +24368,9 @@ exports.EntityManagerModule = class EntityManagerModule {
24352
24368
  };
24353
24369
  exports.EntityManagerModule = __decorate([
24354
24370
  common.Module({
24355
- imports: ModuleData$9.imports,
24356
- providers: ModuleData$9.providers,
24357
- exports: ModuleData$9.exports,
24371
+ imports: ModuleData$a.imports,
24372
+ providers: ModuleData$a.providers,
24373
+ exports: ModuleData$a.exports,
24358
24374
  }),
24359
24375
  __metadata("design:paramtypes", [exports.EntityManagerRegistry])
24360
24376
  ], exports.EntityManagerModule);
@@ -24585,7 +24601,7 @@ AuthenticationMiddleware = __decorate([
24585
24601
  ], AuthenticationMiddleware);
24586
24602
 
24587
24603
  var AuthenticationModule_1;
24588
- const ModuleData$8 = {
24604
+ const ModuleData$9 = {
24589
24605
  imports: [exports.EntityManagerModule, jwt.JwtModule],
24590
24606
  providers: [
24591
24607
  AuthenticationServicesResolver,
@@ -24602,7 +24618,7 @@ exports.AuthenticationModule = AuthenticationModule_1 = class AuthenticationModu
24602
24618
  authSettings.initialize(input);
24603
24619
  return {
24604
24620
  module: AuthenticationModule_1,
24605
- ...ModuleData$8,
24621
+ ...ModuleData$9,
24606
24622
  };
24607
24623
  }
24608
24624
  configure(consumer) {
@@ -24615,7 +24631,7 @@ exports.AuthenticationModule = AuthenticationModule_1 = class AuthenticationModu
24615
24631
  };
24616
24632
  exports.AuthenticationModule = AuthenticationModule_1 = __decorate([
24617
24633
  common.Module({
24618
- ...ModuleData$8,
24634
+ ...ModuleData$9,
24619
24635
  })
24620
24636
  ], exports.AuthenticationModule);
24621
24637
 
@@ -34817,7 +34833,7 @@ const JobResolverProviders = [JobsProviderFactory];
34817
34833
  const JobTasks = [JobsMonitorTask, JobsSchedulerTask];
34818
34834
 
34819
34835
  var JobsModule_1;
34820
- const ModuleData$7 = {
34836
+ const ModuleData$8 = {
34821
34837
  providers: [
34822
34838
  ...JobsProviders,
34823
34839
  ...JobTasks,
@@ -34841,13 +34857,13 @@ exports.JobsModule = JobsModule_1 = class JobsModule {
34841
34857
  jobsSettings.initialize(input);
34842
34858
  return {
34843
34859
  module: JobsModule_1,
34844
- ...ModuleData$7,
34860
+ ...ModuleData$8,
34845
34861
  };
34846
34862
  }
34847
34863
  };
34848
34864
  exports.JobsModule = JobsModule_1 = __decorate([
34849
34865
  common.Module({
34850
- ...ModuleData$7,
34866
+ ...ModuleData$8,
34851
34867
  }),
34852
34868
  __metadata("design:paramtypes", [JobsScheduler,
34853
34869
  JobsProviderFactory])
@@ -34983,6 +34999,8 @@ TasksRegistry = __decorate([
34983
34999
  common.Injectable()
34984
35000
  ], TasksRegistry);
34985
35001
 
35002
+ const tasksSettings = new AppInMemorySettings("tasksSettings");
35003
+
34986
35004
  var TasksInitializer_1;
34987
35005
  let TasksInitializer = TasksInitializer_1 = class TasksInitializer {
34988
35006
  constructor(discover, scheduler, registry) {
@@ -34992,9 +35010,16 @@ let TasksInitializer = TasksInitializer_1 = class TasksInitializer {
34992
35010
  this.logger = new common.Logger(TasksInitializer_1.name);
34993
35011
  }
34994
35012
  async initialize(app) {
35013
+ if (this.tasksSettings?.enabled === false) {
35014
+ this.logger.log("Tasks disabled 🎰");
35015
+ return;
35016
+ }
34995
35017
  await this.registerCronJobs();
34996
35018
  this.logger.log("Tasks initialized 🎰");
34997
35019
  }
35020
+ get tasksSettings() {
35021
+ return tasksSettings.value;
35022
+ }
34998
35023
  async registerCronJobs() {
34999
35024
  const tasks = await this.discoverTasks();
35000
35025
  const duplicatedJobs = tasks.filter((job, index, self) => index !== self.findIndex((t) => t.meta.name === job.meta.name));
@@ -35061,19 +35086,30 @@ exports.TasksService = TasksService_1 = __decorate([
35061
35086
 
35062
35087
  const TaskModuleServices = [exports.TasksService];
35063
35088
 
35064
- exports.TasksModule = class TasksModule {
35089
+ var TasksModule_1;
35090
+ const ModuleData$7 = {
35091
+ imports: [exports.EntityManagerModule],
35092
+ providers: [TasksInitializer, ...TasksModuleProviders, ...TaskModuleServices],
35093
+ exports: [...TaskModuleServices],
35094
+ };
35095
+ exports.TasksModule = TasksModule_1 = class TasksModule {
35065
35096
  constructor(scheduler) {
35066
35097
  this.scheduler = scheduler;
35067
35098
  }
35099
+ static forRoot(input) {
35100
+ tasksSettings.initialize(input);
35101
+ return {
35102
+ module: TasksModule_1,
35103
+ ...ModuleData$7,
35104
+ };
35105
+ }
35068
35106
  onModuleDestroy() {
35069
35107
  this.scheduler.stopAllTasks();
35070
35108
  }
35071
35109
  };
35072
- exports.TasksModule = __decorate([
35110
+ exports.TasksModule = TasksModule_1 = __decorate([
35073
35111
  common.Module({
35074
- imports: [exports.EntityManagerModule],
35075
- providers: [TasksInitializer, ...TasksModuleProviders, ...TaskModuleServices],
35076
- exports: [...TaskModuleServices],
35112
+ ...ModuleData$7,
35077
35113
  }),
35078
35114
  __metadata("design:paramtypes", [TaskScheduler])
35079
35115
  ], exports.TasksModule);