UNPKG

@mopinion/deploy

Version:

Deploy your Mopinion feedback forms with ease

55 lines (46 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = createListenerStore; var _utils = require("../utils"); function createListenerStore() { var state = { intervals: [], cleanUps: [] }; function clearListeners() { var clearIntervals = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; state.cleanUps.forEach(function (runCleanUp) { return runCleanUp(); }); state.cleanUps = []; if (clearIntervals) { state.intervals.forEach(function (cancel) { return cancel(); }); state.intervals = []; } for (var key in state) { if (['intervals', 'cleanUps'].indexOf(key) === -1) { delete state[key]; } } } function setListener() { var fn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; var cleanUp = fn(state); state.cleanUps.push(cleanUp); } function setIntervalListener() { var fn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {}; var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000; state.intervals.push((0, _utils.setRecursiveTimeout)(fn, time)); } return { clearListeners: clearListeners, setListener: setListener, setIntervalListener: setIntervalListener }; } //# sourceMappingURL=createListenerStore.js.map