UNPKG

@zuze/modifiable-effects

Version:

Simple side effects helper for @zuze/modifiable

37 lines (29 loc) 929 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var modifiable = require('@zuze/modifiable'); var effect = function effect(fn) { return function () { return fn.apply(void 0, arguments), modifiable.identity; }; }; var index = (function (api) { var map = new Map(); for (var _len = arguments.length, effects = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { effects[_key - 1] = arguments[_key]; } effects.forEach(function (e) { var arr = Array.isArray(e) ? e : [e]; map.set(e, api.modify(effect(arr.shift()), arr)); }); return function () { for (var _len2 = arguments.length, toRemove = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { toRemove[_key2] = arguments[_key2]; } toRemove.forEach(function (r) { var fn = map.get(r); fn && fn(); }); }; }); exports.default = index; exports.effect = effect;