@vendure/core 3.2.3 → 3.3.0
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/api/api-internal-modules.js +4 -0
- package/dist/api/api-internal-modules.js.map +1 -1
- package/dist/api/middleware/asset-interceptor-plugin.js +17 -2
- package/dist/api/middleware/asset-interceptor-plugin.js.map +1 -1
- package/dist/api/resolvers/admin/draft-order.resolver.d.ts +2 -1
- package/dist/api/resolvers/admin/draft-order.resolver.js +14 -0
- package/dist/api/resolvers/admin/draft-order.resolver.js.map +1 -1
- package/dist/api/resolvers/admin/order.resolver.d.ts +1 -1
- package/dist/api/resolvers/admin/product.resolver.d.ts +1 -1
- package/dist/api/resolvers/admin/product.resolver.js +1 -2
- package/dist/api/resolvers/admin/product.resolver.js.map +1 -1
- package/dist/api/resolvers/admin/scheduled-task.resolver.d.ts +9 -0
- package/dist/api/resolvers/admin/scheduled-task.resolver.js +62 -0
- package/dist/api/resolvers/admin/scheduled-task.resolver.js.map +1 -0
- package/dist/api/schema/admin-api/scheduled-task.api.graphql +25 -0
- package/dist/cache/cache.service.js +2 -0
- package/dist/cache/cache.service.js.map +1 -1
- package/dist/common/index.d.ts +6 -5
- package/dist/common/index.js +6 -5
- package/dist/common/index.js.map +1 -1
- package/dist/common/instrument-decorator.d.ts +41 -0
- package/dist/common/instrument-decorator.js +103 -0
- package/dist/common/instrument-decorator.js.map +1 -0
- package/dist/config/auth/default-password-validation-strategy.d.ts +2 -1
- package/dist/config/auth/default-password-validation-strategy.js +7 -2
- package/dist/config/auth/default-password-validation-strategy.js.map +1 -1
- package/dist/config/config.module.js +4 -1
- package/dist/config/config.module.js.map +1 -1
- package/dist/config/config.service.d.ts +2 -1
- package/dist/config/config.service.js +3 -0
- package/dist/config/config.service.js.map +1 -1
- package/dist/config/default-config.js +10 -1
- package/dist/config/default-config.js.map +1 -1
- package/dist/config/index.d.ts +8 -7
- package/dist/config/index.js +8 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/system/instrumentation-strategy.d.ts +56 -0
- package/dist/config/system/instrumentation-strategy.js +3 -0
- package/dist/config/system/instrumentation-strategy.js.map +1 -0
- package/dist/config/system/noop-instrumentation-strategy.d.ts +4 -0
- package/dist/config/system/noop-instrumentation-strategy.js +10 -0
- package/dist/config/system/noop-instrumentation-strategy.js.map +1 -0
- package/dist/config/vendure-config.d.ts +47 -1
- package/dist/connection/connection.module.d.ts +1 -1
- package/dist/event-bus/event-bus.js +2 -0
- package/dist/event-bus/event-bus.js.map +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +19 -18
- package/dist/index.js.map +1 -1
- package/dist/job-queue/job-queue.js +17 -2
- package/dist/job-queue/job-queue.js.map +1 -1
- package/dist/job-queue/job-queue.service.js +4 -1
- package/dist/job-queue/job-queue.service.js.map +1 -1
- package/dist/plugin/default-cache-plugin/sql-cache-strategy.js +16 -2
- package/dist/plugin/default-cache-plugin/sql-cache-strategy.js.map +1 -1
- package/dist/plugin/default-job-queue-plugin/clean-jobs-task.d.ts +11 -0
- package/dist/plugin/default-job-queue-plugin/clean-jobs-task.js +51 -0
- package/dist/plugin/default-job-queue-plugin/clean-jobs-task.js.map +1 -0
- package/dist/plugin/default-job-queue-plugin/constants.d.ts +2 -0
- package/dist/plugin/default-job-queue-plugin/constants.js +6 -0
- package/dist/plugin/default-job-queue-plugin/constants.js.map +1 -0
- package/dist/plugin/default-job-queue-plugin/default-job-queue-plugin.d.ts +24 -81
- package/dist/plugin/default-job-queue-plugin/default-job-queue-plugin.js +34 -0
- package/dist/plugin/default-job-queue-plugin/default-job-queue-plugin.js.map +1 -1
- package/dist/plugin/default-job-queue-plugin/types.d.ts +101 -0
- package/dist/plugin/default-job-queue-plugin/types.js +3 -0
- package/dist/plugin/default-job-queue-plugin/types.js.map +1 -0
- package/dist/plugin/default-scheduler-plugin/constants.d.ts +3 -0
- package/dist/plugin/default-scheduler-plugin/constants.js +7 -0
- package/dist/plugin/default-scheduler-plugin/constants.js.map +1 -0
- package/dist/plugin/default-scheduler-plugin/default-scheduler-strategy.d.ts +34 -0
- package/dist/plugin/default-scheduler-plugin/default-scheduler-strategy.js +203 -0
- package/dist/plugin/default-scheduler-plugin/default-scheduler-strategy.js.map +1 -0
- package/dist/plugin/default-scheduler-plugin/default-scheduler.plugin.d.ts +31 -0
- package/dist/plugin/default-scheduler-plugin/default-scheduler.plugin.js +69 -0
- package/dist/plugin/default-scheduler-plugin/default-scheduler.plugin.js.map +1 -0
- package/dist/plugin/default-scheduler-plugin/scheduled-task-record.entity.d.ts +10 -0
- package/dist/plugin/default-scheduler-plugin/scheduled-task-record.entity.js +50 -0
- package/dist/plugin/default-scheduler-plugin/scheduled-task-record.entity.js.map +1 -0
- package/dist/plugin/default-scheduler-plugin/types.d.ts +24 -0
- package/dist/plugin/default-scheduler-plugin/types.js +3 -0
- package/dist/plugin/default-scheduler-plugin/types.js.map +1 -0
- package/dist/plugin/index.d.ts +8 -6
- package/dist/plugin/index.js +8 -6
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/plugin-utils.js +2 -1
- package/dist/plugin/plugin-utils.js.map +1 -1
- package/dist/scheduler/index.d.ts +4 -0
- package/dist/scheduler/index.js +21 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/noop-scheduler-strategy.d.ts +10 -0
- package/dist/scheduler/noop-scheduler-strategy.js +24 -0
- package/dist/scheduler/noop-scheduler-strategy.js.map +1 -0
- package/dist/scheduler/scheduled-task.d.ts +142 -0
- package/dist/scheduler/scheduled-task.js +88 -0
- package/dist/scheduler/scheduled-task.js.map +1 -0
- package/dist/scheduler/scheduler-strategy.d.ts +91 -0
- package/dist/scheduler/scheduler-strategy.js +3 -0
- package/dist/scheduler/scheduler-strategy.js.map +1 -0
- package/dist/scheduler/scheduler.module.d.ts +2 -0
- package/dist/scheduler/scheduler.module.js +23 -0
- package/dist/scheduler/scheduler.module.js.map +1 -0
- package/dist/scheduler/scheduler.service.d.ts +40 -0
- package/dist/scheduler/scheduler.service.js +160 -0
- package/dist/scheduler/scheduler.service.js.map +1 -0
- package/dist/scheduler/tasks/clean-sessions-task.d.ts +37 -0
- package/dist/scheduler/tasks/clean-sessions-task.js +52 -0
- package/dist/scheduler/tasks/clean-sessions-task.js.map +1 -0
- package/dist/service/helpers/list-query-builder/list-query-builder.d.ts +2 -0
- package/dist/service/helpers/list-query-builder/list-query-builder.js +28 -4
- package/dist/service/helpers/list-query-builder/list-query-builder.js.map +1 -1
- package/dist/service/helpers/order-calculator/order-calculator.js +2 -0
- package/dist/service/helpers/order-calculator/order-calculator.js.map +1 -1
- package/dist/service/helpers/order-modifier/order-modifier.d.ts +1 -1
- package/dist/service/helpers/order-modifier/order-modifier.js +4 -2
- package/dist/service/helpers/order-modifier/order-modifier.js.map +1 -1
- package/dist/service/service.module.js +2 -1
- package/dist/service/service.module.js.map +1 -1
- package/dist/service/services/administrator.service.js +2 -0
- package/dist/service/services/administrator.service.js.map +1 -1
- package/dist/service/services/asset.service.js +3 -1
- package/dist/service/services/asset.service.js.map +1 -1
- package/dist/service/services/auth.service.d.ts +1 -1
- package/dist/service/services/auth.service.js +2 -0
- package/dist/service/services/auth.service.js.map +1 -1
- package/dist/service/services/channel.service.js +2 -0
- package/dist/service/services/channel.service.js.map +1 -1
- package/dist/service/services/collection.service.js +12 -6
- package/dist/service/services/collection.service.js.map +1 -1
- package/dist/service/services/country.service.js +2 -0
- package/dist/service/services/country.service.js.map +1 -1
- package/dist/service/services/customer-group.service.d.ts +1 -1
- package/dist/service/services/customer-group.service.js +3 -1
- package/dist/service/services/customer-group.service.js.map +1 -1
- package/dist/service/services/customer.service.d.ts +1 -1
- package/dist/service/services/customer.service.js +2 -0
- package/dist/service/services/customer.service.js.map +1 -1
- package/dist/service/services/facet-value.service.d.ts +1 -1
- package/dist/service/services/facet-value.service.js +2 -0
- package/dist/service/services/facet-value.service.js.map +1 -1
- package/dist/service/services/facet.service.js +2 -1
- package/dist/service/services/facet.service.js.map +1 -1
- package/dist/service/services/fulfillment.service.d.ts +1 -1
- package/dist/service/services/fulfillment.service.js +4 -2
- package/dist/service/services/fulfillment.service.js.map +1 -1
- package/dist/service/services/global-settings.service.js +2 -0
- package/dist/service/services/global-settings.service.js.map +1 -1
- package/dist/service/services/history.service.js +2 -0
- package/dist/service/services/history.service.js.map +1 -1
- package/dist/service/services/order-testing.service.js +3 -1
- package/dist/service/services/order-testing.service.js.map +1 -1
- package/dist/service/services/order.service.d.ts +1 -1
- package/dist/service/services/order.service.js +4 -2
- package/dist/service/services/order.service.js.map +1 -1
- package/dist/service/services/payment-method.service.js +2 -0
- package/dist/service/services/payment-method.service.js.map +1 -1
- package/dist/service/services/payment.service.js +4 -2
- package/dist/service/services/payment.service.js.map +1 -1
- package/dist/service/services/product-option-group.service.js +3 -1
- package/dist/service/services/product-option-group.service.js.map +1 -1
- package/dist/service/services/product-option.service.d.ts +1 -1
- package/dist/service/services/product-option.service.js +3 -1
- package/dist/service/services/product-option.service.js.map +1 -1
- package/dist/service/services/product-variant.service.d.ts +1 -1
- package/dist/service/services/product-variant.service.js +3 -1
- package/dist/service/services/product-variant.service.js.map +1 -1
- package/dist/service/services/product.service.js +13 -4
- package/dist/service/services/product.service.js.map +1 -1
- package/dist/service/services/promotion.service.js +2 -0
- package/dist/service/services/promotion.service.js.map +1 -1
- package/dist/service/services/role.service.js +2 -0
- package/dist/service/services/role.service.js.map +1 -1
- package/dist/service/services/seller.service.js +2 -0
- package/dist/service/services/seller.service.js.map +1 -1
- package/dist/service/services/session.service.d.ts +19 -2
- package/dist/service/services/session.service.js +60 -2
- package/dist/service/services/session.service.js.map +1 -1
- package/dist/service/services/shipping-method.service.js +2 -0
- package/dist/service/services/shipping-method.service.js.map +1 -1
- package/dist/service/services/stock-level.service.js +2 -0
- package/dist/service/services/stock-level.service.js.map +1 -1
- package/dist/service/services/stock-location.service.js +2 -0
- package/dist/service/services/stock-location.service.js.map +1 -1
- package/dist/service/services/stock-movement.service.d.ts +1 -3
- package/dist/service/services/stock-movement.service.js +4 -5
- package/dist/service/services/stock-movement.service.js.map +1 -1
- package/dist/service/services/tag.service.js +4 -1
- package/dist/service/services/tag.service.js.map +1 -1
- package/dist/service/services/tax-category.service.js +2 -0
- package/dist/service/services/tax-category.service.js.map +1 -1
- package/dist/service/services/tax-rate.service.js +2 -0
- package/dist/service/services/tax-rate.service.js.map +1 -1
- package/dist/service/services/user.service.js +2 -0
- package/dist/service/services/user.service.js.map +1 -1
- package/dist/service/services/zone.service.js +2 -0
- package/dist/service/services/zone.service.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_MANUAL_TRIGGER_CHECK_INTERVAL = exports.DEFAULT_TIMEOUT = exports.DEFAULT_SCHEDULER_PLUGIN_OPTIONS = void 0;
|
|
4
|
+
exports.DEFAULT_SCHEDULER_PLUGIN_OPTIONS = Symbol('DEFAULT_SCHEDULER_PLUGIN_OPTIONS');
|
|
5
|
+
exports.DEFAULT_TIMEOUT = 60000;
|
|
6
|
+
exports.DEFAULT_MANUAL_TRIGGER_CHECK_INTERVAL = 10000;
|
|
7
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gCAAgC,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAC9E,QAAA,eAAe,GAAG,KAAK,CAAC;AACxB,QAAA,qCAAqC,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
|
|
2
|
+
import { Cron } from 'croner';
|
|
3
|
+
import { Injector } from '../../common';
|
|
4
|
+
import { ScheduledTask } from '../../scheduler/scheduled-task';
|
|
5
|
+
import { SchedulerStrategy, TaskReport } from '../../scheduler/scheduler-strategy';
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* The default {@link SchedulerStrategy} implementation that uses the database to
|
|
9
|
+
* execute scheduled tasks. This strategy is configured when you use the
|
|
10
|
+
* {@link DefaultSchedulerPlugin}.
|
|
11
|
+
*
|
|
12
|
+
* @since 3.3.0
|
|
13
|
+
* @docsCategory scheduled-tasks
|
|
14
|
+
*/
|
|
15
|
+
export declare class DefaultSchedulerStrategy implements SchedulerStrategy {
|
|
16
|
+
private connection;
|
|
17
|
+
private injector;
|
|
18
|
+
private intervalRef;
|
|
19
|
+
private readonly tasks;
|
|
20
|
+
private pluginOptions;
|
|
21
|
+
private runningTasks;
|
|
22
|
+
init(injector: Injector): void;
|
|
23
|
+
destroy(): Promise<void>;
|
|
24
|
+
registerTask(task: ScheduledTask): void;
|
|
25
|
+
executeTask(task: ScheduledTask): (job?: Cron) => Promise<void>;
|
|
26
|
+
getTasks(): Promise<TaskReport[]>;
|
|
27
|
+
getTask(id: string): Promise<TaskReport | undefined>;
|
|
28
|
+
updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport>;
|
|
29
|
+
triggerTask(task: ScheduledTask): Promise<void>;
|
|
30
|
+
private checkForManuallyTriggeredTasks;
|
|
31
|
+
private entityToReport;
|
|
32
|
+
private ensureAllTasksAreRegistered;
|
|
33
|
+
private ensureTaskIsRegistered;
|
|
34
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DefaultSchedulerStrategy = void 0;
|
|
7
|
+
const ms_1 = __importDefault(require("ms"));
|
|
8
|
+
const utils_1 = require("../../common/utils");
|
|
9
|
+
const config_service_1 = require("../../config/config.service");
|
|
10
|
+
const vendure_logger_1 = require("../../config/logger/vendure-logger");
|
|
11
|
+
const connection_1 = require("../../connection");
|
|
12
|
+
const process_context_1 = require("../../process-context");
|
|
13
|
+
const constants_1 = require("./constants");
|
|
14
|
+
const scheduled_task_record_entity_1 = require("./scheduled-task-record.entity");
|
|
15
|
+
/**
|
|
16
|
+
* @description
|
|
17
|
+
* The default {@link SchedulerStrategy} implementation that uses the database to
|
|
18
|
+
* execute scheduled tasks. This strategy is configured when you use the
|
|
19
|
+
* {@link DefaultSchedulerPlugin}.
|
|
20
|
+
*
|
|
21
|
+
* @since 3.3.0
|
|
22
|
+
* @docsCategory scheduled-tasks
|
|
23
|
+
*/
|
|
24
|
+
class DefaultSchedulerStrategy {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.tasks = new Map();
|
|
27
|
+
this.runningTasks = [];
|
|
28
|
+
}
|
|
29
|
+
init(injector) {
|
|
30
|
+
this.connection = injector.get(connection_1.TransactionalConnection);
|
|
31
|
+
this.pluginOptions = injector.get(constants_1.DEFAULT_SCHEDULER_PLUGIN_OPTIONS);
|
|
32
|
+
this.injector = injector;
|
|
33
|
+
const runTriggerCheck = injector.get(config_service_1.ConfigService).schedulerOptions.runTasksInWorkerOnly === false ||
|
|
34
|
+
injector.get(process_context_1.ProcessContext).isWorker;
|
|
35
|
+
if (runTriggerCheck) {
|
|
36
|
+
this.intervalRef = setInterval(() => this.checkForManuallyTriggeredTasks(), this.pluginOptions.manualTriggerCheckInterval);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async destroy() {
|
|
40
|
+
if (this.intervalRef) {
|
|
41
|
+
clearInterval(this.intervalRef);
|
|
42
|
+
}
|
|
43
|
+
for (const task of this.runningTasks) {
|
|
44
|
+
await this.connection.rawConnection
|
|
45
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
46
|
+
.update({ taskId: task.id }, { lockedAt: null });
|
|
47
|
+
vendure_logger_1.Logger.info(`Released lock for task "${task.id}"`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
registerTask(task) {
|
|
51
|
+
this.tasks.set(task.id, {
|
|
52
|
+
task,
|
|
53
|
+
isRegistered: false,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
executeTask(task) {
|
|
57
|
+
return async (job) => {
|
|
58
|
+
var _a;
|
|
59
|
+
await this.ensureTaskIsRegistered(task);
|
|
60
|
+
const taskEntity = await this.connection.rawConnection
|
|
61
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
62
|
+
.createQueryBuilder('task')
|
|
63
|
+
.update()
|
|
64
|
+
.set({ lockedAt: new Date() })
|
|
65
|
+
.where('taskId = :taskId', { taskId: task.id })
|
|
66
|
+
.andWhere('lockedAt IS NULL')
|
|
67
|
+
.andWhere('enabled = TRUE')
|
|
68
|
+
.execute();
|
|
69
|
+
if (!taskEntity.affected) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
vendure_logger_1.Logger.verbose(`Executing scheduled task "${task.id}"`);
|
|
73
|
+
try {
|
|
74
|
+
this.runningTasks.push(task);
|
|
75
|
+
const timeout = (_a = task.options.timeout) !== null && _a !== void 0 ? _a : this.pluginOptions.defaultTimeout;
|
|
76
|
+
const timeoutMs = typeof timeout === 'number' ? timeout : (0, ms_1.default)(timeout);
|
|
77
|
+
let timeoutTimer;
|
|
78
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
79
|
+
timeoutTimer = setTimeout(() => {
|
|
80
|
+
vendure_logger_1.Logger.warn(`Scheduled task ${task.id} timed out after ${timeoutMs}ms`);
|
|
81
|
+
reject(new Error('Task timed out'));
|
|
82
|
+
}, timeoutMs);
|
|
83
|
+
});
|
|
84
|
+
const result = await Promise.race([task.execute(this.injector), timeoutPromise]);
|
|
85
|
+
if (timeoutTimer) {
|
|
86
|
+
clearTimeout(timeoutTimer);
|
|
87
|
+
}
|
|
88
|
+
await this.connection.rawConnection.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord).update({
|
|
89
|
+
taskId: task.id,
|
|
90
|
+
}, {
|
|
91
|
+
lastExecutedAt: new Date(),
|
|
92
|
+
lockedAt: null,
|
|
93
|
+
lastResult: result !== null && result !== void 0 ? result : '',
|
|
94
|
+
});
|
|
95
|
+
vendure_logger_1.Logger.verbose(`Scheduled task "${task.id}" completed successfully`);
|
|
96
|
+
this.runningTasks = this.runningTasks.filter(t => t !== task);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
let errorMessage = 'Unknown error';
|
|
100
|
+
if (error instanceof Error) {
|
|
101
|
+
errorMessage = error.message;
|
|
102
|
+
}
|
|
103
|
+
vendure_logger_1.Logger.error(`Scheduled task "${task.id}" failed with error: ${errorMessage}`);
|
|
104
|
+
await this.connection.rawConnection.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord).update({
|
|
105
|
+
taskId: task.id,
|
|
106
|
+
}, {
|
|
107
|
+
lockedAt: null,
|
|
108
|
+
lastResult: { error: errorMessage },
|
|
109
|
+
});
|
|
110
|
+
this.runningTasks = this.runningTasks.filter(t => t !== task);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
async getTasks() {
|
|
115
|
+
await this.ensureAllTasksAreRegistered();
|
|
116
|
+
return this.connection.rawConnection
|
|
117
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
118
|
+
.createQueryBuilder('task')
|
|
119
|
+
.getMany()
|
|
120
|
+
.then(tasks => {
|
|
121
|
+
return tasks.map(task => this.entityToReport(task));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
async getTask(id) {
|
|
125
|
+
await this.ensureTaskIsRegistered(id);
|
|
126
|
+
return this.connection.rawConnection
|
|
127
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
128
|
+
.createQueryBuilder('task')
|
|
129
|
+
.where('task.taskId = :id', { id })
|
|
130
|
+
.getOne()
|
|
131
|
+
.then(task => (task ? this.entityToReport(task) : undefined));
|
|
132
|
+
}
|
|
133
|
+
async updateTask(input) {
|
|
134
|
+
await this.connection.rawConnection
|
|
135
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
136
|
+
.createQueryBuilder('task')
|
|
137
|
+
.update()
|
|
138
|
+
.set({ enabled: input.enabled })
|
|
139
|
+
.where('taskId = :id', { id: input.id })
|
|
140
|
+
.execute();
|
|
141
|
+
return (0, utils_1.assertFound)(this.getTask(input.id));
|
|
142
|
+
}
|
|
143
|
+
async triggerTask(task) {
|
|
144
|
+
vendure_logger_1.Logger.info(`Triggering task: ${task.id}`);
|
|
145
|
+
await this.ensureTaskIsRegistered(task);
|
|
146
|
+
await this.connection.rawConnection
|
|
147
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
148
|
+
.createQueryBuilder('task')
|
|
149
|
+
.update()
|
|
150
|
+
.set({ manuallyTriggeredAt: new Date() })
|
|
151
|
+
.where('taskId = :id', { id: task.id })
|
|
152
|
+
.execute();
|
|
153
|
+
}
|
|
154
|
+
async checkForManuallyTriggeredTasks() {
|
|
155
|
+
const taskEntities = await this.connection.rawConnection
|
|
156
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
157
|
+
.createQueryBuilder('task')
|
|
158
|
+
.where('task.manuallyTriggeredAt IS NOT NULL')
|
|
159
|
+
.getMany();
|
|
160
|
+
vendure_logger_1.Logger.debug(`Checking for manually triggered tasks: ${taskEntities.length}`);
|
|
161
|
+
for (const taskEntity of taskEntities) {
|
|
162
|
+
await this.connection.rawConnection
|
|
163
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
164
|
+
.update({ taskId: taskEntity.taskId }, { manuallyTriggeredAt: null });
|
|
165
|
+
const task = this.tasks.get(taskEntity.taskId);
|
|
166
|
+
if (task) {
|
|
167
|
+
vendure_logger_1.Logger.info(`Executing manually triggered task: ${task.task.id}`);
|
|
168
|
+
void this.executeTask(task.task)();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
entityToReport(task) {
|
|
173
|
+
return {
|
|
174
|
+
id: task.taskId,
|
|
175
|
+
lastExecutedAt: task.lastExecutedAt,
|
|
176
|
+
isRunning: task.lockedAt !== null,
|
|
177
|
+
lastResult: task.lastResult,
|
|
178
|
+
enabled: task.enabled,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
async ensureAllTasksAreRegistered() {
|
|
182
|
+
for (const task of this.tasks.values()) {
|
|
183
|
+
await this.ensureTaskIsRegistered(task.task);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async ensureTaskIsRegistered(taskOrId) {
|
|
187
|
+
const taskId = typeof taskOrId === 'string' ? taskOrId : taskOrId.id;
|
|
188
|
+
const task = this.tasks.get(taskId);
|
|
189
|
+
if (task && !task.isRegistered) {
|
|
190
|
+
await this.connection.rawConnection
|
|
191
|
+
.getRepository(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
192
|
+
.createQueryBuilder()
|
|
193
|
+
.insert()
|
|
194
|
+
.into(scheduled_task_record_entity_1.ScheduledTaskRecord)
|
|
195
|
+
.values({ taskId })
|
|
196
|
+
.orIgnore()
|
|
197
|
+
.execute();
|
|
198
|
+
this.tasks.set(taskId, { task: task.task, isRegistered: true });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.DefaultSchedulerStrategy = DefaultSchedulerStrategy;
|
|
203
|
+
//# sourceMappingURL=default-scheduler-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-scheduler-strategy.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/default-scheduler-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { DefaultSchedulerPluginOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* This plugin configures a default scheduling strategy that executes scheduled
|
|
5
|
+
* tasks using the database to ensure that each task is executed exactly once
|
|
6
|
+
* at the scheduled time, even if there are multiple instances of the worker
|
|
7
|
+
* running.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
|
|
12
|
+
*
|
|
13
|
+
* export const config: VendureConfig = {
|
|
14
|
+
* plugins: [
|
|
15
|
+
* DefaultSchedulerPlugin.init({
|
|
16
|
+
* // The default is 60s, but you can override it here
|
|
17
|
+
* defaultTimeout: '10s',
|
|
18
|
+
* }),
|
|
19
|
+
* ],
|
|
20
|
+
* };
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @since 3.3.0
|
|
24
|
+
* @docsCategory scheduled-tasks
|
|
25
|
+
* @docsPage DefaultSchedulerPlugin
|
|
26
|
+
* @docsWeight 0
|
|
27
|
+
*/
|
|
28
|
+
export declare class DefaultSchedulerPlugin {
|
|
29
|
+
static options: DefaultSchedulerPluginOptions;
|
|
30
|
+
static init(config?: DefaultSchedulerPluginOptions): typeof DefaultSchedulerPlugin;
|
|
31
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DefaultSchedulerPlugin = void 0;
|
|
10
|
+
const plugin_common_module_1 = require("../../plugin/plugin-common.module");
|
|
11
|
+
const vendure_plugin_1 = require("../../plugin/vendure-plugin");
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const default_scheduler_strategy_1 = require("./default-scheduler-strategy");
|
|
14
|
+
const scheduled_task_record_entity_1 = require("./scheduled-task-record.entity");
|
|
15
|
+
/**
|
|
16
|
+
* @description
|
|
17
|
+
* This plugin configures a default scheduling strategy that executes scheduled
|
|
18
|
+
* tasks using the database to ensure that each task is executed exactly once
|
|
19
|
+
* at the scheduled time, even if there are multiple instances of the worker
|
|
20
|
+
* running.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { DefaultSchedulerPlugin, VendureConfig } from '@vendure/core';
|
|
25
|
+
*
|
|
26
|
+
* export const config: VendureConfig = {
|
|
27
|
+
* plugins: [
|
|
28
|
+
* DefaultSchedulerPlugin.init({
|
|
29
|
+
* // The default is 60s, but you can override it here
|
|
30
|
+
* defaultTimeout: '10s',
|
|
31
|
+
* }),
|
|
32
|
+
* ],
|
|
33
|
+
* };
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @since 3.3.0
|
|
37
|
+
* @docsCategory scheduled-tasks
|
|
38
|
+
* @docsPage DefaultSchedulerPlugin
|
|
39
|
+
* @docsWeight 0
|
|
40
|
+
*/
|
|
41
|
+
let DefaultSchedulerPlugin = class DefaultSchedulerPlugin {
|
|
42
|
+
static init(config) {
|
|
43
|
+
this.options = Object.assign(Object.assign({}, this.options), (config || {}));
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
exports.DefaultSchedulerPlugin = DefaultSchedulerPlugin;
|
|
48
|
+
DefaultSchedulerPlugin.options = {
|
|
49
|
+
defaultTimeout: constants_1.DEFAULT_TIMEOUT,
|
|
50
|
+
manualTriggerCheckInterval: constants_1.DEFAULT_MANUAL_TRIGGER_CHECK_INTERVAL,
|
|
51
|
+
};
|
|
52
|
+
exports.DefaultSchedulerPlugin = DefaultSchedulerPlugin = __decorate([
|
|
53
|
+
(0, vendure_plugin_1.VendurePlugin)({
|
|
54
|
+
imports: [plugin_common_module_1.PluginCommonModule],
|
|
55
|
+
entities: [scheduled_task_record_entity_1.ScheduledTaskRecord],
|
|
56
|
+
configuration: config => {
|
|
57
|
+
config.schedulerOptions.schedulerStrategy = new default_scheduler_strategy_1.DefaultSchedulerStrategy();
|
|
58
|
+
return config;
|
|
59
|
+
},
|
|
60
|
+
providers: [
|
|
61
|
+
{
|
|
62
|
+
provide: constants_1.DEFAULT_SCHEDULER_PLUGIN_OPTIONS,
|
|
63
|
+
useFactory: () => DefaultSchedulerPlugin.options,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
compatibility: '>0.0.0',
|
|
67
|
+
})
|
|
68
|
+
], DefaultSchedulerPlugin);
|
|
69
|
+
//# sourceMappingURL=default-scheduler.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-scheduler.plugin.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/default-scheduler.plugin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4EAAuE;AACvE,gEAA4D;AAE5D,2CAIqB;AACrB,6EAAwE;AACxE,iFAAqE;AAGrE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgBI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAM/B,MAAM,CAAC,IAAI,CAAC,MAAsC;QAC9C,IAAI,CAAC,OAAO,mCAAQ,IAAI,CAAC,OAAO,GAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;;AATQ,wDAAsB;AACxB,8BAAO,GAAkC;IAC5C,cAAc,EAAE,2BAAe;IAC/B,0BAA0B,EAAE,iDAAqC;CACpE,AAHa,CAGZ;iCAJO,sBAAsB;IAflC,IAAA,8BAAa,EAAC;QACX,OAAO,EAAE,CAAC,yCAAkB,CAAC;QAC7B,QAAQ,EAAE,CAAC,kDAAmB,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,qDAAwB,EAAE,CAAC;YAC3E,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,SAAS,EAAE;YACP;gBACI,OAAO,EAAE,4CAAgC;gBACzC,UAAU,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO;aACnD;SACJ;QACD,aAAa,EAAE,QAAQ;KAC1B,CAAC;GACW,sBAAsB,CAUlC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { VendureEntity } from '../../entity/base/base.entity';
|
|
2
|
+
export declare class ScheduledTaskRecord extends VendureEntity {
|
|
3
|
+
constructor(input: Partial<ScheduledTaskRecord>);
|
|
4
|
+
taskId: string;
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
lockedAt: Date | null;
|
|
7
|
+
lastExecutedAt: Date | null;
|
|
8
|
+
manuallyTriggeredAt: Date | null;
|
|
9
|
+
lastResult: Record<string, any> | string | number | null;
|
|
10
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScheduledTaskRecord = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const base_entity_1 = require("../../entity/base/base.entity");
|
|
15
|
+
let ScheduledTaskRecord = class ScheduledTaskRecord extends base_entity_1.VendureEntity {
|
|
16
|
+
constructor(input) {
|
|
17
|
+
super(input);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.ScheduledTaskRecord = ScheduledTaskRecord;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, typeorm_1.Column)(),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], ScheduledTaskRecord.prototype, "taskId", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, typeorm_1.Column)({ default: true }),
|
|
27
|
+
__metadata("design:type", Boolean)
|
|
28
|
+
], ScheduledTaskRecord.prototype, "enabled", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, typeorm_1.Column)({ type: Date, nullable: true, precision: 3 }),
|
|
31
|
+
__metadata("design:type", Object)
|
|
32
|
+
], ScheduledTaskRecord.prototype, "lockedAt", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, typeorm_1.Column)({ type: Date, nullable: true, precision: 3 }),
|
|
35
|
+
__metadata("design:type", Object)
|
|
36
|
+
], ScheduledTaskRecord.prototype, "lastExecutedAt", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, typeorm_1.Column)({ type: Date, nullable: true, precision: 3 }),
|
|
39
|
+
__metadata("design:type", Object)
|
|
40
|
+
], ScheduledTaskRecord.prototype, "manuallyTriggeredAt", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, typeorm_1.Column)({ type: 'json', nullable: true }),
|
|
43
|
+
__metadata("design:type", Object)
|
|
44
|
+
], ScheduledTaskRecord.prototype, "lastResult", void 0);
|
|
45
|
+
exports.ScheduledTaskRecord = ScheduledTaskRecord = __decorate([
|
|
46
|
+
(0, typeorm_1.Entity)(),
|
|
47
|
+
(0, typeorm_1.Unique)(['taskId']),
|
|
48
|
+
__metadata("design:paramtypes", [Object])
|
|
49
|
+
], ScheduledTaskRecord);
|
|
50
|
+
//# sourceMappingURL=scheduled-task-record.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-task-record.entity.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/scheduled-task-record.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAiD;AAEjD,+DAA8D;AAIvD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,2BAAa;IAClD,YAAY,KAAmC;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;CAmBJ,CAAA;AAtBY,kDAAmB;AAM5B;IADC,IAAA,gBAAM,GAAE;;mDACM;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;oDACT;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;;qDAC/B;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;;2DACzB;AAG5B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;;gEACpB;AAGjC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACgB;8BArBhD,mBAAmB;IAF/B,IAAA,gBAAM,GAAE;IACR,IAAA,gBAAM,EAAC,CAAC,QAAQ,CAAC,CAAC;;GACN,mBAAmB,CAsB/B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
* The options for the {@link DefaultSchedulerPlugin}.
|
|
4
|
+
*
|
|
5
|
+
* @since 3.3.0
|
|
6
|
+
* @docsCategory scheduled-tasks
|
|
7
|
+
* @docsPage DefaultSchedulerPlugin
|
|
8
|
+
*/
|
|
9
|
+
export interface DefaultSchedulerPluginOptions {
|
|
10
|
+
/**
|
|
11
|
+
* @description
|
|
12
|
+
* The default timeout for scheduled tasks.
|
|
13
|
+
*
|
|
14
|
+
* @default 60_000ms
|
|
15
|
+
*/
|
|
16
|
+
defaultTimeout?: string | number;
|
|
17
|
+
/**
|
|
18
|
+
* @description
|
|
19
|
+
* The interval at which the plugin will check for manually triggered tasks.
|
|
20
|
+
*
|
|
21
|
+
* @default 10_000ms
|
|
22
|
+
*/
|
|
23
|
+
manualTriggerCheckInterval?: string | number;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugin/default-scheduler-plugin/types.ts"],"names":[],"mappings":""}
|
package/dist/plugin/index.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
export * from './default-
|
|
1
|
+
export * from './default-cache-plugin/default-cache-plugin';
|
|
2
|
+
export * from './default-cache-plugin/sql-cache-strategy';
|
|
2
3
|
export * from './default-job-queue-plugin/default-job-queue-plugin';
|
|
3
4
|
export * from './default-job-queue-plugin/job-record-buffer.entity';
|
|
4
5
|
export * from './default-job-queue-plugin/sql-job-buffer-storage-strategy';
|
|
5
|
-
export * from './default-
|
|
6
|
-
export * from './default-
|
|
6
|
+
export * from './default-job-queue-plugin/types';
|
|
7
|
+
export * from './default-scheduler-plugin/default-scheduler.plugin';
|
|
8
|
+
export * from './default-search-plugin/index';
|
|
9
|
+
export * from './plugin-common.module';
|
|
10
|
+
export * from './plugin-metadata';
|
|
11
|
+
export * from './plugin-utils';
|
|
7
12
|
export * from './redis-cache-plugin/redis-cache-plugin';
|
|
8
13
|
export * from './redis-cache-plugin/redis-cache-strategy';
|
|
9
14
|
export * from './redis-cache-plugin/types';
|
|
10
15
|
export * from './vendure-plugin';
|
|
11
|
-
export * from './plugin-common.module';
|
|
12
|
-
export * from './plugin-utils';
|
|
13
|
-
export * from './plugin-metadata';
|
package/dist/plugin/index.js
CHANGED
|
@@ -14,17 +14,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./default-
|
|
17
|
+
__exportStar(require("./default-cache-plugin/default-cache-plugin"), exports);
|
|
18
|
+
__exportStar(require("./default-cache-plugin/sql-cache-strategy"), exports);
|
|
18
19
|
__exportStar(require("./default-job-queue-plugin/default-job-queue-plugin"), exports);
|
|
19
20
|
__exportStar(require("./default-job-queue-plugin/job-record-buffer.entity"), exports);
|
|
20
21
|
__exportStar(require("./default-job-queue-plugin/sql-job-buffer-storage-strategy"), exports);
|
|
21
|
-
__exportStar(require("./default-
|
|
22
|
-
__exportStar(require("./default-
|
|
22
|
+
__exportStar(require("./default-job-queue-plugin/types"), exports);
|
|
23
|
+
__exportStar(require("./default-scheduler-plugin/default-scheduler.plugin"), exports);
|
|
24
|
+
__exportStar(require("./default-search-plugin/index"), exports);
|
|
25
|
+
__exportStar(require("./plugin-common.module"), exports);
|
|
26
|
+
__exportStar(require("./plugin-metadata"), exports);
|
|
27
|
+
__exportStar(require("./plugin-utils"), exports);
|
|
23
28
|
__exportStar(require("./redis-cache-plugin/redis-cache-plugin"), exports);
|
|
24
29
|
__exportStar(require("./redis-cache-plugin/redis-cache-strategy"), exports);
|
|
25
30
|
__exportStar(require("./redis-cache-plugin/types"), exports);
|
|
26
31
|
__exportStar(require("./vendure-plugin"), exports);
|
|
27
|
-
__exportStar(require("./plugin-common.module"), exports);
|
|
28
|
-
__exportStar(require("./plugin-utils"), exports);
|
|
29
|
-
__exportStar(require("./plugin-metadata"), exports);
|
|
30
32
|
//# sourceMappingURL=index.js.map
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8EAA4D;AAC5D,4EAA0D;AAC1D,sFAAoE;AACpE,sFAAoE;AACpE,6FAA2E;AAC3E,mEAAiD;AACjD,sFAAoE;AACpE,gEAA8C;AAC9C,yDAAuC;AACvC,oDAAkC;AAClC,iDAA+B;AAC/B,0EAAwD;AACxD,4EAA0D;AAC1D,6DAA2C;AAC3C,mDAAiC"}
|
|
@@ -37,11 +37,12 @@ const config_1 = require("../config");
|
|
|
37
37
|
* @docsPage Plugin Utilities
|
|
38
38
|
*/
|
|
39
39
|
function createProxyHandler(options) {
|
|
40
|
+
var _a;
|
|
40
41
|
const route = options.route.charAt(0) === '/' ? options.route : '/' + options.route;
|
|
41
42
|
const proxyHostname = options.hostname || 'localhost';
|
|
42
43
|
const middleware = (0, http_proxy_middleware_1.createProxyMiddleware)({
|
|
43
44
|
// TODO: how do we detect https?
|
|
44
|
-
target: `http://${proxyHostname}:${options.port}`,
|
|
45
|
+
target: `http://${proxyHostname}:${options.port}/${(_a = options.basePath) !== null && _a !== void 0 ? _a : ''}`,
|
|
45
46
|
pathRewrite: {
|
|
46
47
|
[`^${route}`]: '/' + (options.basePath || ''),
|
|
47
48
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../../src/plugin/plugin-utils.ts"],"names":[],"mappings":";;AAoCA,gDA4BC;AA8CD,oEAEC;AAED,4DAEC;AAnHD,iEAA8D;AAE9D,sCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,kBAAkB,CAAC,OAAqB
|
|
1
|
+
{"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../../src/plugin/plugin-utils.ts"],"names":[],"mappings":";;AAoCA,gDA4BC;AA8CD,oEAEC;AAED,4DAEC;AAnHD,iEAA8D;AAE9D,sCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,kBAAkB,CAAC,OAAqB;;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;IACpF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;IACtD,MAAM,UAAU,GAAG,IAAA,6CAAqB,EAAC;QACrC,gCAAgC;QAChC,MAAM,EAAE,UAAU,aAAa,IAAI,OAAO,CAAC,IAAI,IAAI,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,EAAE;QAC3E,WAAW,EAAE;YACT,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SAChD;QACD,MAAM,EAAE;YACJ,GAAG,CAAC,OAAe;gBACf,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,KAAK,CAAC,OAAe;gBACjB,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,OAAe;gBAChB,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,OAAe;gBAChB,eAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,CAAC,OAAe;gBACjB,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;SACJ;KACJ,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACtB,CAAC;AAwCD,MAAM,qBAAqB,GAA2C,EAAE,CAAC;AAEzE;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,WAAmB,EAAE,IAAY;IAC1E,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,wBAAwB;IACpC,OAAO,qBAAqB,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./scheduled-task"), exports);
|
|
18
|
+
__exportStar(require("./scheduler-strategy"), exports);
|
|
19
|
+
__exportStar(require("./scheduler.service"), exports);
|
|
20
|
+
__exportStar(require("./tasks/clean-sessions-task"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,uDAAqC;AACrC,sDAAoC;AACpC,8DAA4C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
|
|
2
|
+
import { ScheduledTask } from './scheduled-task';
|
|
3
|
+
import { SchedulerStrategy, TaskReport } from './scheduler-strategy';
|
|
4
|
+
export declare class NoopSchedulerStrategy implements SchedulerStrategy {
|
|
5
|
+
getTasks(): Promise<TaskReport[]>;
|
|
6
|
+
getTask(id: string): Promise<TaskReport | undefined>;
|
|
7
|
+
executeTask(task: ScheduledTask): () => Promise<void>;
|
|
8
|
+
updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport>;
|
|
9
|
+
triggerTask(task: ScheduledTask): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NoopSchedulerStrategy = void 0;
|
|
4
|
+
const vendure_logger_1 = require("../config/logger/vendure-logger");
|
|
5
|
+
class NoopSchedulerStrategy {
|
|
6
|
+
getTasks() {
|
|
7
|
+
return Promise.resolve([]);
|
|
8
|
+
}
|
|
9
|
+
getTask(id) {
|
|
10
|
+
return Promise.resolve(undefined);
|
|
11
|
+
}
|
|
12
|
+
executeTask(task) {
|
|
13
|
+
vendure_logger_1.Logger.warn(`No task scheduler is configured! The task ${task.id} will not be executed.`);
|
|
14
|
+
return () => Promise.resolve();
|
|
15
|
+
}
|
|
16
|
+
updateTask(input) {
|
|
17
|
+
throw new Error(`Not implemented`);
|
|
18
|
+
}
|
|
19
|
+
triggerTask(task) {
|
|
20
|
+
throw new Error(`Not implemented`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.NoopSchedulerStrategy = NoopSchedulerStrategy;
|
|
24
|
+
//# sourceMappingURL=noop-scheduler-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noop-scheduler-strategy.js","sourceRoot":"","sources":["../../src/scheduler/noop-scheduler-strategy.ts"],"names":[],"mappings":";;;AAEA,oEAAyD;AAKzD,MAAa,qBAAqB;IAC9B,QAAQ;QACJ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,EAAU;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,IAAmB;QAC3B,uBAAM,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC;QAC1F,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,KAA+B;QACtC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,IAAmB;QAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ;AArBD,sDAqBC"}
|