@onify/flow-extensions
Version:
Onify Flow extensions
38 lines (37 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OnifyTimerEventDefinition = void 0;
var _croner = require("croner");
var _bpmnElements = require("bpmn-elements");
class OnifyTimerEventDefinition extends _bpmnElements.TimerEventDefinition {
constructor(activity, def) {
super(activity, def);
Object.defineProperty(this, 'supports', {
value: ['cron', 'iso8601']
});
}
parse(timerType, value) {
if (timerType === 'timeCycle') {
try {
return super.parse(timerType, value);
} catch (err) {
var rangeError = err;
}
try {
const expireAt = new _croner.Cron(value).nextRun();
return {
expireAt,
delay: expireAt - Date.now()
};
} catch (err) {
this.logger.error(`<${this.activity?.id}> failed to parse timeCycle: ${rangeError.message}`);
this.logger.error(`<${this.activity?.id}> failed to parse timeCycle as cron: ${err.message}`);
throw new RangeError(`Failed to parse timeCycle <${value?.substring(0, 255)}> as ISO 8601 interval or cron`);
}
}
return super.parse(timerType, value);
}
}
exports.OnifyTimerEventDefinition = OnifyTimerEventDefinition;