UNPKG

bpm-engine

Version:

Business Process Management Engine for JavaScript

42 lines (32 loc) 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const DEFAULTS = { onTick: () => {}, interval: 1000 }; class Clock { constructor({ onTick = DEFAULTS.ONTICK, interval = DEFAULTS.INTERVAL }) { this.onTick = onTick; this.interval = interval; this.tick(); } tick() { var _this = this; this.timeout = setTimeout((0, _asyncToGenerator3.default)(function* () { yield _this.onTick(); _this.tick(); }), this.interval); } stop() { if (this.timeout) { clearTimeout(this.timeout); } } } exports.default = Clock; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ2xvY2suanMiXSwibmFtZXMiOlsiREVGQVVMVFMiLCJvblRpY2siLCJpbnRlcnZhbCIsIkNsb2NrIiwiY29uc3RydWN0b3IiLCJPTlRJQ0siLCJJTlRFUlZBTCIsInRpY2siLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsInN0b3AiLCJjbGVhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE1BQU1BLFdBQVc7QUFDZkMsVUFBUSxNQUFNLENBQUUsQ0FERDtBQUVmQyxZQUFVO0FBRkssQ0FBakI7O0FBS0EsTUFBTUMsS0FBTixDQUFZO0FBQ1ZDLGNBQVksRUFBRUgsU0FBU0QsU0FBU0ssTUFBcEIsRUFBNEJILFdBQVdGLFNBQVNNLFFBQWhELEVBQVosRUFBd0U7QUFDdEUsU0FBS0wsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQSxTQUFLSyxJQUFMO0FBQ0Q7O0FBRURBLFNBQU87QUFBQTs7QUFDTCxTQUFLQyxPQUFMLEdBQWVDLDJDQUFXLGFBQVk7QUFDcEMsWUFBTSxNQUFLUixNQUFMLEVBQU47QUFDQSxZQUFLTSxJQUFMO0FBQ0QsS0FIYyxHQUdaLEtBQUtMLFFBSE8sQ0FBZjtBQUlEOztBQUVEUSxTQUFPO0FBQ0wsUUFBSSxLQUFLRixPQUFULEVBQWtCO0FBQ2hCRyxtQkFBYSxLQUFLSCxPQUFsQjtBQUNEO0FBQ0Y7QUFsQlM7O2tCQXFCR0wsSyIsImZpbGUiOiJDbG9jay5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERFRkFVTFRTID0ge1xuICBvblRpY2s6ICgpID0+IHt9LFxuICBpbnRlcnZhbDogMTAwMCxcbn07XG5cbmNsYXNzIENsb2NrIHtcbiAgY29uc3RydWN0b3IoeyBvblRpY2sgPSBERUZBVUxUUy5PTlRJQ0ssIGludGVydmFsID0gREVGQVVMVFMuSU5URVJWQUwgfSkge1xuICAgIHRoaXMub25UaWNrID0gb25UaWNrO1xuICAgIHRoaXMuaW50ZXJ2YWwgPSBpbnRlcnZhbDtcbiAgICB0aGlzLnRpY2soKTtcbiAgfVxuXG4gIHRpY2soKSB7XG4gICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLm9uVGljaygpO1xuICAgICAgdGhpcy50aWNrKCk7XG4gICAgfSwgdGhpcy5pbnRlcnZhbCk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDbG9jaztcbiJdfQ==