@eggjs/tegg-schedule-decorator
Version:
tegg schedule decorator
26 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScheduleMetaBuilder = void 0;
const ScheduleMetadata_1 = require("../model/ScheduleMetadata");
const ScheduleInfoUtil_1 = require("../util/ScheduleInfoUtil");
const DEFAULT_SCHEDULE_OPTIONS = {
immediate: false,
disable: false,
env: undefined,
};
class ScheduleMetaBuilder {
constructor(clazz) {
this.clazz = clazz;
}
build() {
const params = ScheduleInfoUtil_1.ScheduleInfoUtil.getScheduleParams(this.clazz);
if (!params) {
throw new Error(`class ${this.clazz.name} is not a schedule`);
}
const options = ScheduleInfoUtil_1.ScheduleInfoUtil.getScheduleOptions(this.clazz);
const scheduleOptions = Object.assign({}, DEFAULT_SCHEDULE_OPTIONS, options);
return new ScheduleMetadata_1.ScheduleMetadata(params.type, params.scheduleData, scheduleOptions.immediate, scheduleOptions.disable, scheduleOptions.env);
}
}
exports.ScheduleMetaBuilder = ScheduleMetaBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZGVyL1NjaGVkdWxlTWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsZ0VBQTZEO0FBQzdELCtEQUE0RDtBQUU1RCxNQUFNLHdCQUF3QixHQUFvQjtJQUNoRCxTQUFTLEVBQUUsS0FBSztJQUNoQixPQUFPLEVBQUUsS0FBSztJQUNkLEdBQUcsRUFBRSxTQUFTO0NBQ2YsQ0FBQztBQUVGLE1BQWEsbUJBQW1CO0lBRzlCLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLE1BQU0sR0FBRyxtQ0FBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxtQ0FBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0UsT0FBTyxJQUFJLG1DQUFnQixDQUN6QixNQUFNLENBQUMsSUFBSSxFQUNYLE1BQU0sQ0FBQyxZQUFZLEVBQ25CLGVBQWUsQ0FBQyxTQUFVLEVBQzFCLGVBQWUsQ0FBQyxPQUFRLEVBQ3hCLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFyQkQsa0RBcUJDIn0=