@punks/backend-entity-manager 0.0.282 → 0.0.284

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 (26) hide show
  1. package/dist/cjs/index.js +71 -21
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/platforms/nest/extensions/jobs/abstractions/runner.d.ts +1 -0
  4. package/dist/cjs/types/platforms/nest/extensions/jobs/commands/job-dispatch/command.d.ts +1 -0
  5. package/dist/cjs/types/platforms/nest/extensions/jobs/index.d.ts +1 -0
  6. package/dist/cjs/types/platforms/nest/extensions/jobs/providers/scheduler/index.d.ts +2 -3
  7. package/dist/cjs/types/platforms/nest/extensions/jobs/services/index.d.ts +2 -1
  8. package/dist/cjs/types/platforms/nest/extensions/jobs/services/jobs-service/index.d.ts +2 -0
  9. package/dist/cjs/types/platforms/nest/extensions/jobs/services/jobs-service/service.d.ts +8 -3
  10. package/dist/cjs/types/platforms/nest/extensions/jobs/services/jobs-service/types.d.ts +1 -0
  11. package/dist/cjs/types/platforms/nest/extensions/jobs/settings/index.d.ts +3 -0
  12. package/dist/cjs/types/platforms/nest/ioc/tokens/symbols.d.ts +0 -1
  13. package/dist/esm/index.js +72 -22
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/types/platforms/nest/extensions/jobs/abstractions/runner.d.ts +1 -0
  16. package/dist/esm/types/platforms/nest/extensions/jobs/commands/job-dispatch/command.d.ts +1 -0
  17. package/dist/esm/types/platforms/nest/extensions/jobs/index.d.ts +1 -0
  18. package/dist/esm/types/platforms/nest/extensions/jobs/providers/scheduler/index.d.ts +2 -3
  19. package/dist/esm/types/platforms/nest/extensions/jobs/services/index.d.ts +2 -1
  20. package/dist/esm/types/platforms/nest/extensions/jobs/services/jobs-service/index.d.ts +2 -0
  21. package/dist/esm/types/platforms/nest/extensions/jobs/services/jobs-service/service.d.ts +8 -3
  22. package/dist/esm/types/platforms/nest/extensions/jobs/services/jobs-service/types.d.ts +1 -0
  23. package/dist/esm/types/platforms/nest/extensions/jobs/settings/index.d.ts +3 -0
  24. package/dist/esm/types/platforms/nest/ioc/tokens/symbols.d.ts +0 -1
  25. package/dist/index.d.ts +22 -4
  26. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -33784,10 +33784,11 @@ JobsMonitorTask = JobsMonitorTask_1 = __decorate([
33784
33784
  __metadata("design:paramtypes", [Object, Object, cqrs.CommandBus])
33785
33785
  ], JobsMonitorTask);
33786
33786
 
33787
+ const jobsSettings = new AppInMemorySettings();
33788
+
33787
33789
  var JobsScheduler_1;
33788
33790
  let JobsScheduler = JobsScheduler_1 = class JobsScheduler {
33789
- constructor(jobsSettings, schedulerRegistry, schedulerTask, monitorTask) {
33790
- this.jobsSettings = jobsSettings;
33791
+ constructor(schedulerRegistry, schedulerTask, monitorTask) {
33791
33792
  this.schedulerRegistry = schedulerRegistry;
33792
33793
  this.schedulerTask = schedulerTask;
33793
33794
  this.monitorTask = monitorTask;
@@ -33823,18 +33824,78 @@ let JobsScheduler = JobsScheduler_1 = class JobsScheduler {
33823
33824
  this.registerJobsScheduler();
33824
33825
  this.registerJobsMonitor();
33825
33826
  }
33827
+ get jobsSettings() {
33828
+ return jobsSettings.value;
33829
+ }
33826
33830
  };
33827
33831
  JobsScheduler = JobsScheduler_1 = __decorate([
33828
33832
  common.Injectable(),
33829
- __param(0, common.Inject(getEntityManagerProviderToken("JobsModuleSettings"))),
33830
- __metadata("design:paramtypes", [Object, schedule.SchedulerRegistry,
33833
+ __metadata("design:paramtypes", [schedule.SchedulerRegistry,
33831
33834
  JobsSchedulerTask,
33832
33835
  JobsMonitorTask])
33833
33836
  ], JobsScheduler);
33834
33837
 
33835
33838
  const JobsProviders = [JobsScheduler];
33836
33839
 
33837
- const JobsServices = [];
33840
+ class JobDefinitionUpdateCommand {
33841
+ constructor(input) {
33842
+ this.input = input;
33843
+ }
33844
+ }
33845
+
33846
+ exports.JobsService = class JobsService {
33847
+ constructor(definitions, instances, commandBus) {
33848
+ this.definitions = definitions;
33849
+ this.instances = instances;
33850
+ this.commandBus = commandBus;
33851
+ this.triggerJob = async (input) => {
33852
+ const job = await this.definitions.getDefinitionByUid(input.jobUid);
33853
+ if (!job) {
33854
+ throw new Error(`Job ${input.jobUid} not found`);
33855
+ }
33856
+ const schedule = input.scheduleUid
33857
+ ? job.schedules.find((x) => x.uid === input.scheduleUid)
33858
+ : undefined;
33859
+ if (input.scheduleUid && !schedule) {
33860
+ throw new Error(`Job ${input.jobUid} schedule ${input.scheduleUid} not found`);
33861
+ }
33862
+ return await this.commandBus.execute(new JobDispatchCommand({
33863
+ job,
33864
+ schedule,
33865
+ runType: exports.JobRunType.OnDemand,
33866
+ payload: input.payload,
33867
+ }));
33868
+ };
33869
+ this.updateJob = async (input) => {
33870
+ this.commandBus.execute(new JobDefinitionUpdateCommand({
33871
+ job: input,
33872
+ }));
33873
+ };
33874
+ this.instanceMonitor = async (input) => {
33875
+ const { instanceId } = input;
33876
+ const instance = await this.instances.getById(instanceId);
33877
+ if (!instance) {
33878
+ throw new Error(`Job instance ${instanceId} not found`);
33879
+ }
33880
+ const job = await this.definitions.getDefinitionByUid(instance.jobUid);
33881
+ if (!job) {
33882
+ throw new Error(`Job definition ${instance.jobUid} not found`);
33883
+ }
33884
+ return await this.commandBus.execute(new JobStatusMonitorCommand({
33885
+ instanceId,
33886
+ job,
33887
+ }));
33888
+ };
33889
+ }
33890
+ };
33891
+ exports.JobsService = __decorate([
33892
+ common.Injectable(),
33893
+ __param(0, common.Inject(getEntityManagerProviderToken("JobDefinitionsRepository"))),
33894
+ __param(1, common.Inject(getEntityManagerProviderToken("JobInstancesRepository"))),
33895
+ __metadata("design:paramtypes", [Object, Object, cqrs.CommandBus])
33896
+ ], exports.JobsService);
33897
+
33898
+ const JobsServices = [exports.JobsService];
33838
33899
 
33839
33900
  const JOB_PROVIDER = Symbol.for("WP.JOB_PROVIDER");
33840
33901
 
@@ -33902,7 +33963,7 @@ let JobDispatchHandler = JobDispatchHandler_1 = class JobDispatchHandler {
33902
33963
  });
33903
33964
  }
33904
33965
  async dispatchJob(command) {
33905
- const { input: { job, schedule, runType }, } = command;
33966
+ const { input: { job, schedule, runType, payload }, } = command;
33906
33967
  const instanceId = backendCore.newUuid();
33907
33968
  try {
33908
33969
  this.logger.info(`JOB DISPATCH -> dispatching started job ${job.uid} -> ${instanceId}`);
@@ -33916,6 +33977,7 @@ let JobDispatchHandler = JobDispatchHandler_1 = class JobDispatchHandler {
33916
33977
  definition: job,
33917
33978
  schedule,
33918
33979
  instanceId,
33980
+ payload,
33919
33981
  });
33920
33982
  await this.instances.updateInstance(instanceId, {
33921
33983
  status: exports.JobStatus.Ready,
@@ -34006,12 +34068,6 @@ JobStatusMonitorHandler = JobStatusMonitorHandler_1 = __decorate([
34006
34068
  JobProviderExecutor, Object])
34007
34069
  ], JobStatusMonitorHandler);
34008
34070
 
34009
- class JobDefinitionUpdateCommand {
34010
- constructor(input) {
34011
- this.input = input;
34012
- }
34013
- }
34014
-
34015
34071
  var JobDefinitionUpdateHandler_1;
34016
34072
  let JobDefinitionUpdateHandler = JobDefinitionUpdateHandler_1 = class JobDefinitionUpdateHandler {
34017
34073
  constructor(lock, definitions, executor) {
@@ -34077,16 +34133,10 @@ exports.JobsModule = JobsModule_1 = class JobsModule {
34077
34133
  await this.jobsProviderFactory.initialize();
34078
34134
  }
34079
34135
  static forRoot(input) {
34136
+ jobsSettings.initialize(input);
34080
34137
  return {
34081
34138
  module: JobsModule_1,
34082
34139
  ...ModuleData$7,
34083
- providers: [
34084
- ...ModuleData$7.providers,
34085
- {
34086
- provide: getEntityManagerProviderToken("JobsModuleSettings"),
34087
- useValue: input,
34088
- },
34089
- ],
34090
34140
  };
34091
34141
  }
34092
34142
  };
@@ -40085,13 +40135,13 @@ let AwsJobsProvider = class AwsJobsProvider {
40085
40135
  this.awsBatchService = awsBatchService;
40086
40136
  }
40087
40137
  async dispatch(input) {
40088
- const { definition, schedule, instanceId } = input;
40138
+ const { definition, schedule, instanceId, payload } = input;
40089
40139
  const awsInvocationParams = schedule?.invocationOverrides;
40090
40140
  await this.awsBatchService.submitJob({
40091
40141
  instanceId,
40092
40142
  jobUid: definition.uid,
40093
40143
  overrides: {
40094
- command: awsInvocationParams?.startCommand,
40144
+ command: awsInvocationParams?.startCommand?.map((x) => x.replace("{payload}", JSON.stringify(payload ?? {}))),
40095
40145
  },
40096
40146
  });
40097
40147
  }