UNPKG

@onify/flow-extensions

Version:
38 lines (37 loc) 1.24 kB
"use strict"; 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;