@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 +66 -30
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/commands/upsert.d.ts +2 -3
- package/dist/cjs/types/platforms/nest/extensions/tasks/initializer.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/tasks/module.d.ts +3 -1
- package/dist/cjs/types/platforms/nest/extensions/tasks/settings/index.d.ts +5 -0
- package/dist/esm/index.js +66 -30
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/commands/upsert.d.ts +2 -3
- package/dist/esm/types/platforms/nest/extensions/tasks/initializer.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/tasks/module.d.ts +3 -1
- package/dist/esm/types/platforms/nest/extensions/tasks/settings/index.d.ts +5 -0
- package/dist/index.d.ts +13 -8
- package/package.json +1 -1
|
@@ -3,10 +3,9 @@ import { EntityServiceLocator } from "../providers/services";
|
|
|
3
3
|
export declare class EntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData> implements IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData> {
|
|
4
4
|
private readonly services;
|
|
5
5
|
constructor(services: EntityServiceLocator<TEntity, TEntityId>);
|
|
6
|
-
execute(id: TEntityId, data: TEntityUpdateData): Promise<{
|
|
7
|
-
id:
|
|
6
|
+
execute(id: TEntityId | undefined, data: TEntityUpdateData): Promise<{
|
|
7
|
+
id: any;
|
|
8
8
|
}>;
|
|
9
|
-
private upsertEntity;
|
|
10
9
|
private adaptEntity;
|
|
11
10
|
private authorize;
|
|
12
11
|
private getContext;
|
|
@@ -10,6 +10,7 @@ export declare class TasksInitializer implements IAppInitializer {
|
|
|
10
10
|
private readonly logger;
|
|
11
11
|
constructor(discover: CustomDiscoveryService, scheduler: TaskScheduler, registry: TasksRegistry);
|
|
12
12
|
initialize(app: INestApplicationContext): Promise<void>;
|
|
13
|
+
private get tasksSettings();
|
|
13
14
|
private registerCronJobs;
|
|
14
15
|
private discoverTasks;
|
|
15
16
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { OnModuleDestroy } from "@nestjs/common";
|
|
1
|
+
import { DynamicModule, OnModuleDestroy } from "@nestjs/common";
|
|
2
2
|
import { TaskScheduler } from "./providers/scheduler";
|
|
3
|
+
import { TasksModuleSettings } from "./settings";
|
|
3
4
|
export declare class TasksModule implements OnModuleDestroy {
|
|
4
5
|
private readonly scheduler;
|
|
5
6
|
constructor(scheduler: TaskScheduler);
|
|
7
|
+
static forRoot(input: TasksModuleSettings): DynamicModule;
|
|
6
8
|
onModuleDestroy(): void;
|
|
7
9
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1100,37 +1100,53 @@ class EntityUpsertCommand {
|
|
|
1100
1100
|
this.services = services;
|
|
1101
1101
|
}
|
|
1102
1102
|
async execute(id, data) {
|
|
1103
|
-
const entity = await this.adaptEntity(data);
|
|
1103
|
+
const entity = await this.adaptEntity(id, data);
|
|
1104
1104
|
await this.authorize(id, entity);
|
|
1105
|
-
|
|
1106
|
-
|
|
1105
|
+
if (id) {
|
|
1106
|
+
const updatedEntity = await this.services
|
|
1107
|
+
.resolveRepository()
|
|
1108
|
+
.upsert(id, entity);
|
|
1109
|
+
await this.versionEntity(id, updatedEntity);
|
|
1110
|
+
await this.services
|
|
1111
|
+
.resolveEventsManager()
|
|
1112
|
+
.processEntityUpdatedEvent(updatedEntity);
|
|
1113
|
+
return {
|
|
1114
|
+
id,
|
|
1115
|
+
};
|
|
1116
|
+
}
|
|
1117
|
+
const createdItem = await this.services.resolveRepository().create(entity);
|
|
1118
|
+
// todo: parametrize id field
|
|
1119
|
+
const newId = createdItem.id;
|
|
1120
|
+
await this.versionEntity(newId, createdItem);
|
|
1107
1121
|
await this.services
|
|
1108
1122
|
.resolveEventsManager()
|
|
1109
|
-
.
|
|
1123
|
+
.processEntityCreatedEvent(createdItem);
|
|
1110
1124
|
return {
|
|
1111
|
-
id,
|
|
1125
|
+
id: newId,
|
|
1112
1126
|
};
|
|
1113
1127
|
}
|
|
1114
|
-
async
|
|
1115
|
-
return await this.services.resolveRepository().upsert(id, entity);
|
|
1116
|
-
}
|
|
1117
|
-
async adaptEntity(input) {
|
|
1128
|
+
async adaptEntity(id, input) {
|
|
1118
1129
|
const context = await this.getContext();
|
|
1119
1130
|
const adapter = this.services.resolveAdapter();
|
|
1120
|
-
|
|
1131
|
+
if (!adapter) {
|
|
1132
|
+
return input;
|
|
1133
|
+
}
|
|
1134
|
+
return id
|
|
1121
1135
|
? adapter.updateDataToEntity(input, context)
|
|
1122
|
-
: input;
|
|
1136
|
+
: adapter.createDataToEntity(input, context);
|
|
1123
1137
|
}
|
|
1124
1138
|
async authorize(id, entity) {
|
|
1125
1139
|
const authorization = this.services.resolveAuthorizationMiddleware();
|
|
1126
1140
|
if (!authorization) {
|
|
1127
1141
|
return;
|
|
1128
1142
|
}
|
|
1129
|
-
const currentEntity = await this.services.resolveRepository().get(id);
|
|
1130
1143
|
const context = await this.getContext();
|
|
1131
1144
|
if (!context) {
|
|
1132
1145
|
return;
|
|
1133
1146
|
}
|
|
1147
|
+
const currentEntity = id
|
|
1148
|
+
? await this.services.resolveRepository().get(id)
|
|
1149
|
+
: undefined;
|
|
1134
1150
|
if (currentEntity) {
|
|
1135
1151
|
const updateResult = await authorization.canUpdate(currentEntity, context);
|
|
1136
1152
|
if (!updateResult.isAuthorized)
|
|
@@ -2968,7 +2984,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
2968
2984
|
};
|
|
2969
2985
|
|
|
2970
2986
|
var AwsDynamoDbModule_1;
|
|
2971
|
-
const ModuleData$
|
|
2987
|
+
const ModuleData$b = {
|
|
2972
2988
|
providers: [],
|
|
2973
2989
|
exports: [],
|
|
2974
2990
|
};
|
|
@@ -2977,13 +2993,13 @@ let AwsDynamoDbModule = AwsDynamoDbModule_1 = class AwsDynamoDbModule {
|
|
|
2977
2993
|
awsDynamoDbSettings.initialize(input);
|
|
2978
2994
|
return {
|
|
2979
2995
|
module: AwsDynamoDbModule_1,
|
|
2980
|
-
...ModuleData$
|
|
2996
|
+
...ModuleData$b,
|
|
2981
2997
|
};
|
|
2982
2998
|
}
|
|
2983
2999
|
};
|
|
2984
3000
|
AwsDynamoDbModule = AwsDynamoDbModule_1 = __decorate([
|
|
2985
3001
|
Module({
|
|
2986
|
-
...ModuleData$
|
|
3002
|
+
...ModuleData$b,
|
|
2987
3003
|
})
|
|
2988
3004
|
], AwsDynamoDbModule);
|
|
2989
3005
|
|
|
@@ -24314,7 +24330,7 @@ const getIoCContext = () => {
|
|
|
24314
24330
|
return _context;
|
|
24315
24331
|
};
|
|
24316
24332
|
|
|
24317
|
-
const ModuleData$
|
|
24333
|
+
const ModuleData$a = {
|
|
24318
24334
|
imports: [CustomDiscoveryModule, EventEmitterModule],
|
|
24319
24335
|
providers: [
|
|
24320
24336
|
...IoC,
|
|
@@ -24337,9 +24353,9 @@ let EntityManagerModule = class EntityManagerModule {
|
|
|
24337
24353
|
};
|
|
24338
24354
|
EntityManagerModule = __decorate([
|
|
24339
24355
|
Module({
|
|
24340
|
-
imports: ModuleData$
|
|
24341
|
-
providers: ModuleData$
|
|
24342
|
-
exports: ModuleData$
|
|
24356
|
+
imports: ModuleData$a.imports,
|
|
24357
|
+
providers: ModuleData$a.providers,
|
|
24358
|
+
exports: ModuleData$a.exports,
|
|
24343
24359
|
}),
|
|
24344
24360
|
__metadata("design:paramtypes", [EntityManagerRegistry])
|
|
24345
24361
|
], EntityManagerModule);
|
|
@@ -24570,7 +24586,7 @@ AuthenticationMiddleware = __decorate([
|
|
|
24570
24586
|
], AuthenticationMiddleware);
|
|
24571
24587
|
|
|
24572
24588
|
var AuthenticationModule_1;
|
|
24573
|
-
const ModuleData$
|
|
24589
|
+
const ModuleData$9 = {
|
|
24574
24590
|
imports: [EntityManagerModule, JwtModule],
|
|
24575
24591
|
providers: [
|
|
24576
24592
|
AuthenticationServicesResolver,
|
|
@@ -24587,7 +24603,7 @@ let AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
|
|
|
24587
24603
|
authSettings.initialize(input);
|
|
24588
24604
|
return {
|
|
24589
24605
|
module: AuthenticationModule_1,
|
|
24590
|
-
...ModuleData$
|
|
24606
|
+
...ModuleData$9,
|
|
24591
24607
|
};
|
|
24592
24608
|
}
|
|
24593
24609
|
configure(consumer) {
|
|
@@ -24600,7 +24616,7 @@ let AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
|
|
|
24600
24616
|
};
|
|
24601
24617
|
AuthenticationModule = AuthenticationModule_1 = __decorate([
|
|
24602
24618
|
Module({
|
|
24603
|
-
...ModuleData$
|
|
24619
|
+
...ModuleData$9,
|
|
24604
24620
|
})
|
|
24605
24621
|
], AuthenticationModule);
|
|
24606
24622
|
|
|
@@ -34802,7 +34818,7 @@ const JobResolverProviders = [JobsProviderFactory];
|
|
|
34802
34818
|
const JobTasks = [JobsMonitorTask, JobsSchedulerTask];
|
|
34803
34819
|
|
|
34804
34820
|
var JobsModule_1;
|
|
34805
|
-
const ModuleData$
|
|
34821
|
+
const ModuleData$8 = {
|
|
34806
34822
|
providers: [
|
|
34807
34823
|
...JobsProviders,
|
|
34808
34824
|
...JobTasks,
|
|
@@ -34826,13 +34842,13 @@ let JobsModule = JobsModule_1 = class JobsModule {
|
|
|
34826
34842
|
jobsSettings.initialize(input);
|
|
34827
34843
|
return {
|
|
34828
34844
|
module: JobsModule_1,
|
|
34829
|
-
...ModuleData$
|
|
34845
|
+
...ModuleData$8,
|
|
34830
34846
|
};
|
|
34831
34847
|
}
|
|
34832
34848
|
};
|
|
34833
34849
|
JobsModule = JobsModule_1 = __decorate([
|
|
34834
34850
|
Module({
|
|
34835
|
-
...ModuleData$
|
|
34851
|
+
...ModuleData$8,
|
|
34836
34852
|
}),
|
|
34837
34853
|
__metadata("design:paramtypes", [JobsScheduler,
|
|
34838
34854
|
JobsProviderFactory])
|
|
@@ -34968,6 +34984,8 @@ TasksRegistry = __decorate([
|
|
|
34968
34984
|
Injectable()
|
|
34969
34985
|
], TasksRegistry);
|
|
34970
34986
|
|
|
34987
|
+
const tasksSettings = new AppInMemorySettings("tasksSettings");
|
|
34988
|
+
|
|
34971
34989
|
var TasksInitializer_1;
|
|
34972
34990
|
let TasksInitializer = TasksInitializer_1 = class TasksInitializer {
|
|
34973
34991
|
constructor(discover, scheduler, registry) {
|
|
@@ -34977,9 +34995,16 @@ let TasksInitializer = TasksInitializer_1 = class TasksInitializer {
|
|
|
34977
34995
|
this.logger = new Logger(TasksInitializer_1.name);
|
|
34978
34996
|
}
|
|
34979
34997
|
async initialize(app) {
|
|
34998
|
+
if (this.tasksSettings?.enabled === false) {
|
|
34999
|
+
this.logger.log("Tasks disabled 🎰");
|
|
35000
|
+
return;
|
|
35001
|
+
}
|
|
34980
35002
|
await this.registerCronJobs();
|
|
34981
35003
|
this.logger.log("Tasks initialized 🎰");
|
|
34982
35004
|
}
|
|
35005
|
+
get tasksSettings() {
|
|
35006
|
+
return tasksSettings.value;
|
|
35007
|
+
}
|
|
34983
35008
|
async registerCronJobs() {
|
|
34984
35009
|
const tasks = await this.discoverTasks();
|
|
34985
35010
|
const duplicatedJobs = tasks.filter((job, index, self) => index !== self.findIndex((t) => t.meta.name === job.meta.name));
|
|
@@ -35046,19 +35071,30 @@ TasksService = TasksService_1 = __decorate([
|
|
|
35046
35071
|
|
|
35047
35072
|
const TaskModuleServices = [TasksService];
|
|
35048
35073
|
|
|
35049
|
-
|
|
35074
|
+
var TasksModule_1;
|
|
35075
|
+
const ModuleData$7 = {
|
|
35076
|
+
imports: [EntityManagerModule],
|
|
35077
|
+
providers: [TasksInitializer, ...TasksModuleProviders, ...TaskModuleServices],
|
|
35078
|
+
exports: [...TaskModuleServices],
|
|
35079
|
+
};
|
|
35080
|
+
let TasksModule = TasksModule_1 = class TasksModule {
|
|
35050
35081
|
constructor(scheduler) {
|
|
35051
35082
|
this.scheduler = scheduler;
|
|
35052
35083
|
}
|
|
35084
|
+
static forRoot(input) {
|
|
35085
|
+
tasksSettings.initialize(input);
|
|
35086
|
+
return {
|
|
35087
|
+
module: TasksModule_1,
|
|
35088
|
+
...ModuleData$7,
|
|
35089
|
+
};
|
|
35090
|
+
}
|
|
35053
35091
|
onModuleDestroy() {
|
|
35054
35092
|
this.scheduler.stopAllTasks();
|
|
35055
35093
|
}
|
|
35056
35094
|
};
|
|
35057
|
-
TasksModule = __decorate([
|
|
35095
|
+
TasksModule = TasksModule_1 = __decorate([
|
|
35058
35096
|
Module({
|
|
35059
|
-
|
|
35060
|
-
providers: [TasksInitializer, ...TasksModuleProviders, ...TaskModuleServices],
|
|
35061
|
-
exports: [...TaskModuleServices],
|
|
35097
|
+
...ModuleData$7,
|
|
35062
35098
|
}),
|
|
35063
35099
|
__metadata("design:paramtypes", [TaskScheduler])
|
|
35064
35100
|
], TasksModule);
|