UNPKG

koconut

Version:

Provide interchainable array, set, map and etc supporting both normal and async callbacks as their action arguments.

1,342 lines (1,339 loc) 88.7 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true, }); exports.KoconutMap = void 0; var _regenerator = _interopRequireDefault( require('@babel/runtime/regenerator'), ); var _slicedToArray2 = _interopRequireDefault( require('@babel/runtime/helpers/slicedToArray'), ); var _asyncToGenerator2 = _interopRequireDefault( require('@babel/runtime/helpers/asyncToGenerator'), ); var _classCallCheck2 = _interopRequireDefault( require('@babel/runtime/helpers/classCallCheck'), ); var _createClass2 = _interopRequireDefault( require('@babel/runtime/helpers/createClass'), ); var _assertThisInitialized2 = _interopRequireDefault( require('@babel/runtime/helpers/assertThisInitialized'), ); var _get2 = _interopRequireDefault(require('@babel/runtime/helpers/get')); var _inherits2 = _interopRequireDefault( require('@babel/runtime/helpers/inherits'), ); var _possibleConstructorReturn2 = _interopRequireDefault( require('@babel/runtime/helpers/possibleConstructorReturn'), ); var _getPrototypeOf2 = _interopRequireDefault( require('@babel/runtime/helpers/getPrototypeOf'), ); var _defineProperty2 = _interopRequireDefault( require('@babel/runtime/helpers/defineProperty'), ); var _module = require('../../../module'); function _createForOfIteratorHelper(o, allowArrayLike) { var it = (typeof Symbol !== 'undefined' && o[Symbol.iterator]) || o['@@iterator']; if (!it) { if ( Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || (allowArrayLike && o && typeof o.length === 'number') ) { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F, }; } throw new TypeError( 'Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.', ); } var normalCompletion = true; var didErr = false; var err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it['return'] != null) it['return'](); } finally { if (didErr) throw err; } }, }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === 'string') return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === 'Object' && o.constructor) n = o.constructor.name; if (n === 'Map' || n === 'Set') return Array.from(o); if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2['default'])(Derived); var result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2['default'])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2['default'])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === 'undefined' || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === 'function') return true; try { Boolean.prototype.valueOf.call( Reflect.construct(Boolean, [], function () {}), ); return true; } catch (e) { return false; } } ('use strict'); var KoconutMap = (function (_KoconutIterable) { (0, _inherits2['default'])(KoconutMap, _KoconutIterable); var _super = _createSuper(KoconutMap); function KoconutMap() { var _this; var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; (0, _classCallCheck2['default'])(this, KoconutMap); _this = _super.call(this); (0, _defineProperty2['default'])( (0, _assertThisInitialized2['default'])(_this), 'mKeys', new Set(), ); (0, _defineProperty2['default'])( (0, _assertThisInitialized2['default'])(_this), 'mValues', new Array(), ); var mapObject = new Map(); if (map != null) { var _iterator = _createForOfIteratorHelper(map); var _step; try { for (_iterator.s(); !(_step = _iterator.n()).done; ) { var eachEntry = _step.value; if (eachEntry instanceof _module.Entry) mapObject.set(eachEntry.key, eachEntry.value); else if (eachEntry instanceof _module.Pair) mapObject.set(eachEntry.first, eachEntry.second); else mapObject.set(eachEntry[0], eachEntry[1]); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } _this.data = mapObject; return _this; } (0, _createClass2['default'])( KoconutMap, [ { key: 'validate', value: (function () { var _validate = (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee(data) { var _iterator2; var _step2; var _step2$value; var key; var value; var _this$data; var isConflict; var _iterator3; var _step3; var eachPrevEquatableKey; var equalityResult; return _regenerator['default'].wrap( function _callee$(_context) { while (1) { switch ((_context.prev = _context.next)) { case 0: if (!(data != null)) { _context.next = 53; break; } this.combinedDataWrapper = new Set(); _iterator2 = _createForOfIteratorHelper(data.entries()); _context.prev = 3; _iterator2.s(); case 5: if ((_step2 = _iterator2.n()).done) { _context.next = 44; break; } (_step2$value = (0, _slicedToArray2['default'])( _step2.value, 2, )), (key = _step2$value[0]), (value = _step2$value[1]); if (!_module.KoconutTypeChecker.checkIsEquatable(key)) { _context.next = 39; break; } isConflict = false; _iterator3 = _createForOfIteratorHelper(this.mKeys); _context.prev = 10; _iterator3.s(); case 12: if ((_step3 = _iterator3.n()).done) { _context.next = 28; break; } eachPrevEquatableKey = _step3.value; equalityResult = key.equalsTo(eachPrevEquatableKey); _context.t1 = equalityResult instanceof _module.KoconutPrimitive; if (!_context.t1) { _context.next = 20; break; } _context.next = 19; return equalityResult['yield'](); case 19: _context.t1 = _context.sent; case 20: _context.t0 = _context.t1; if (_context.t0) { _context.next = 23; break; } _context.t0 = !( equalityResult instanceof _module.KoconutPrimitive ) && equalityResult; case 23: if (!_context.t0) { _context.next = 26; break; } isConflict = true; return _context.abrupt('break', 28); case 26: _context.next = 12; break; case 28: _context.next = 33; break; case 30: _context.prev = 30; _context.t2 = _context['catch'](10); _iterator3.e(_context.t2); case 33: _context.prev = 33; _iterator3.f(); return _context.finish(33); case 36: if (!isConflict) { this.mKeys.add(key); this.combinedDataWrapper.add( new _module.Entry(key, value), ); this.mValues.push(value); } else (_this$data = this.data) === null || _this$data === void 0 ? void 0 : _this$data['delete'](key); _context.next = 42; break; case 39: this.mKeys.add(key); this.combinedDataWrapper.add( new _module.Entry(key, value), ); this.mValues.push(value); case 42: _context.next = 5; break; case 44: _context.next = 49; break; case 46: _context.prev = 46; _context.t3 = _context['catch'](3); _iterator2.e(_context.t3); case 49: _context.prev = 49; _iterator2.f(); return _context.finish(49); case 52: this.mSize = data.size; case 53: case 'end': return _context.stop(); } } }, _callee, this, [ [3, 46, 49, 52], [10, 30, 33, 36], ], ); }), ); function validate(_x) { return _validate.apply(this, arguments); } return validate; })(), }, { key: 'retrieve', value: (function () { var _retrieve = (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee2() { return _regenerator['default'].wrap( function _callee2$(_context2) { while (1) { switch ((_context2.prev = _context2.next)) { case 0: _context2.next = 2; return (0, _get2['default'])( (0, _getPrototypeOf2['default'])( KoconutMap.prototype, ), 'retrieve', this, ).call(this); case 2: return _context2.abrupt('return', this); case 3: case 'end': return _context2.stop(); } } }, _callee2, this, ); }), ); function retrieve() { return _retrieve.apply(this, arguments); } return retrieve; })(), }, { key: 'entries', get: function get() { var _this2 = this; var koconutToReturn = new _module.KoconutSet(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee3() { return _regenerator['default'].wrap(function _callee3$( _context3, ) { while (1) { switch ((_context3.prev = _context3.next)) { case 0: return _context3.abrupt( 'return', _this2.combinedDataWrapper, ); case 1: case 'end': return _context3.stop(); } } }, _callee3); }), ), ); return koconutToReturn; }, }, { key: 'keys', get: function get() { var _this3 = this; var koconutToReturn = new _module.KoconutSet(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee4() { return _regenerator['default'].wrap(function _callee4$( _context4, ) { while (1) { switch ((_context4.prev = _context4.next)) { case 0: return _context4.abrupt('return', _this3.mKeys); case 1: case 'end': return _context4.stop(); } } }, _callee4); }), ), ); return koconutToReturn; }, }, { key: 'size', get: function get() { var _this4 = this; var koconutToReturn = new _module.KoconutPrimitive(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee5() { return _regenerator['default'].wrap(function _callee5$( _context5, ) { while (1) { switch ((_context5.prev = _context5.next)) { case 0: return _context5.abrupt('return', _this4.mSize); case 1: case 'end': return _context5.stop(); } } }, _callee5); }), ), ); return koconutToReturn; }, }, { key: 'values', get: function get() { var _this5 = this; var koconutToReturn = new _module.KoconutArray(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee6() { return _regenerator['default'].wrap(function _callee6$( _context6, ) { while (1) { switch ((_context6.prev = _context6.next)) { case 0: return _context6.abrupt('return', _this5.mValues); case 1: case 'end': return _context6.stop(); } } }, _callee6); }), ), ); return koconutToReturn; }, }, { key: 'maxBy', value: function maxBy(selector) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'maxBy', this, ).call(this, selector, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'maxByOrNull', value: function maxByOrNull(selector) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'maxByOrNull', this, ).call(this, selector, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'maxWith', value: function maxWith(comparator) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'maxWith', this, ).call(this, comparator, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'maxWithOrNull', value: function maxWithOrNull(comparator) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'maxWithOrNull', this, ).call(this, comparator, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'minBy', value: function minBy(selector) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'minBy', this, ).call(this, selector, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'minByOrNull', value: function minByOrNull(selector) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'minByOrNull', this, ).call(this, selector, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'minWith', value: function minWith(comparator) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'minWith', this, ).call(this, comparator, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'minWithOrNull', value: function minWithOrNull(comparator) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fromSuper = (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'minWithOrNull', this, ).call(this, comparator, thisArg); var koconutToReturn = new _module.KoconutEntry(); koconutToReturn .setPrevYieldable(fromSuper['prevYieldable']) .setProcessor(fromSuper['processor']); return koconutToReturn; }, }, { key: 'contains', value: function contains(key) { var _this6 = this; var koconutToReturn = new _module.KoconutBoolean(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee7() { var _iterator4; var _step4; var eachKey; var equalityResult; return _regenerator['default'].wrap( function _callee7$(_context7) { while (1) { switch ((_context7.prev = _context7.next)) { case 0: _iterator4 = _createForOfIteratorHelper(_this6.mKeys); _context7.prev = 1; _iterator4.s(); case 3: if ((_step4 = _iterator4.n()).done) { _context7.next = 23; break; } eachKey = _step4.value; if ( !_module.KoconutTypeChecker.checkIsEquatable( eachKey, ) ) { _context7.next = 19; break; } equalityResult = eachKey.equalsTo(key); _context7.t1 = equalityResult instanceof _module.KoconutPrimitive; if (!_context7.t1) { _context7.next = 12; break; } _context7.next = 11; return equalityResult['yield'](); case 11: _context7.t1 = _context7.sent; case 12: _context7.t0 = _context7.t1; if (_context7.t0) { _context7.next = 15; break; } _context7.t0 = !( equalityResult instanceof _module.KoconutPrimitive ) && equalityResult; case 15: if (!_context7.t0) { _context7.next = 17; break; } return _context7.abrupt('return', true); case 17: _context7.next = 21; break; case 19: if (!(eachKey == key)) { _context7.next = 21; break; } return _context7.abrupt('return', true); case 21: _context7.next = 3; break; case 23: _context7.next = 28; break; case 25: _context7.prev = 25; _context7.t2 = _context7['catch'](1); _iterator4.e(_context7.t2); case 28: _context7.prev = 28; _iterator4.f(); return _context7.finish(28); case 31: return _context7.abrupt('return', false); case 32: case 'end': return _context7.stop(); } } }, _callee7, null, [[1, 25, 28, 31]], ); }), ), ); return koconutToReturn; }, }, { key: 'containsKey', value: function containsKey(key) { return this.contains(key); }, }, { key: 'containsValue', value: function containsValue(value) { var _this7 = this; var koconutToReturn = new _module.KoconutBoolean(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee8() { var _iterator5; var _step5; var eachValue; var equalityResult; return _regenerator['default'].wrap( function _callee8$(_context8) { while (1) { switch ((_context8.prev = _context8.next)) { case 0: _iterator5 = _createForOfIteratorHelper( _this7.mValues, ); _context8.prev = 1; _iterator5.s(); case 3: if ((_step5 = _iterator5.n()).done) { _context8.next = 23; break; } eachValue = _step5.value; if ( !_module.KoconutTypeChecker.checkIsEquatable( eachValue, ) ) { _context8.next = 19; break; } equalityResult = eachValue.equalsTo(value); _context8.t1 = equalityResult instanceof _module.KoconutPrimitive; if (!_context8.t1) { _context8.next = 12; break; } _context8.next = 11; return equalityResult['yield'](); case 11: _context8.t1 = _context8.sent; case 12: _context8.t0 = _context8.t1; if (_context8.t0) { _context8.next = 15; break; } _context8.t0 = !( equalityResult instanceof _module.KoconutPrimitive ) && equalityResult; case 15: if (!_context8.t0) { _context8.next = 17; break; } return _context8.abrupt('return', true); case 17: _context8.next = 21; break; case 19: if (!(eachValue == value)) { _context8.next = 21; break; } return _context8.abrupt('return', true); case 21: _context8.next = 3; break; case 23: _context8.next = 28; break; case 25: _context8.prev = 25; _context8.t2 = _context8['catch'](1); _iterator5.e(_context8.t2); case 28: _context8.prev = 28; _iterator5.f(); return _context8.finish(28); case 31: return _context8.abrupt('return', false); case 32: case 'end': return _context8.stop(); } } }, _callee8, null, [[1, 25, 28, 31]], ); }), ), ); return koconutToReturn; }, }, { key: 'onEach', value: function onEach(action) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; return KoconutMap.fromIterable( (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'onEach', this, ).call(this, action, thisArg), ); }, }, { key: 'filter', value: function filter(predicate) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; return KoconutMap.fromIterable( (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'filter', this, ).call(this, predicate, thisArg), ); }, }, { key: 'filterNot', value: function filterNot(predicate) { var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; return KoconutMap.fromIterable( (0, _get2['default'])( (0, _getPrototypeOf2['default'])(KoconutMap.prototype), 'filterNot', this, ).call(this, predicate, thisArg), ); }, }, { key: 'filterTo', value: function filterTo(destination, predicate) { var _this8 = this; var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; predicate = predicate.bind(thisArg); var koconutToReturn = new KoconutMap(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee9() { var _iterator6; var _step6; var eachEntry; return _regenerator['default'].wrap( function _callee9$(_context9) { while (1) { switch ((_context9.prev = _context9.next)) { case 0: _iterator6 = _createForOfIteratorHelper( _this8.combinedDataWrapper, ); _context9.prev = 1; _iterator6.s(); case 3: if ((_step6 = _iterator6.n()).done) { _context9.next = 11; break; } eachEntry = _step6.value; _context9.next = 7; return predicate(eachEntry); case 7: if (!_context9.sent) { _context9.next = 9; break; } destination.set(eachEntry.key, eachEntry.value); case 9: _context9.next = 3; break; case 11: _context9.next = 16; break; case 13: _context9.prev = 13; _context9.t0 = _context9['catch'](1); _iterator6.e(_context9.t0); case 16: _context9.prev = 16; _iterator6.f(); return _context9.finish(16); case 19: return _context9.abrupt('return', _this8.data); case 20: case 'end': return _context9.stop(); } } }, _callee9, null, [[1, 13, 16, 19]], ); }), ), ); return koconutToReturn; }, }, { key: 'filterNotTo', value: function filterNotTo(destination, predicate) { var _this9 = this; var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; predicate = predicate.bind(thisArg); var koconutToReturn = new KoconutMap(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee10() { var _iterator7; var _step7; var eachEntry; return _regenerator['default'].wrap( function _callee10$(_context10) { while (1) { switch ((_context10.prev = _context10.next)) { case 0: _iterator7 = _createForOfIteratorHelper( _this9.combinedDataWrapper, ); _context10.prev = 1; _iterator7.s(); case 3: if ((_step7 = _iterator7.n()).done) { _context10.next = 11; break; } eachEntry = _step7.value; _context10.next = 7; return predicate(eachEntry); case 7: if (_context10.sent) { _context10.next = 9; break; } destination.set(eachEntry.key, eachEntry.value); case 9: _context10.next = 3; break; case 11: _context10.next = 16; break; case 13: _context10.prev = 13; _context10.t0 = _context10['catch'](1); _iterator7.e(_context10.t0); case 16: _context10.prev = 16; _iterator7.f(); return _context10.finish(16); case 19: return _context10.abrupt('return', _this9.data); case 20: case 'end': return _context10.stop(); } } }, _callee10, null, [[1, 13, 16, 19]], ); }), ), ); return koconutToReturn; }, }, { key: 'filterKeys', value: function filterKeys(predicate) { var _this10 = this; var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; predicate = predicate.bind(thisArg); var koconutToReturn = new KoconutMap(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee11() { var processedMap; var _iterator8; var _step8; var eachEntry; return _regenerator['default'].wrap( function _callee11$(_context11) { while (1) { switch ((_context11.prev = _context11.next)) { case 0: processedMap = new Map(); _iterator8 = _createForOfIteratorHelper( _this10.combinedDataWrapper, ); _context11.prev = 2; _iterator8.s(); case 4: if ((_step8 = _iterator8.n()).done) { _context11.next = 12; break; } eachEntry = _step8.value; _context11.next = 8; return predicate(eachEntry.key); case 8: if (!_context11.sent) { _context11.next = 10; break; } processedMap.set(eachEntry.key, eachEntry.value); case 10: _context11.next = 4; break; case 12: _context11.next = 17; break; case 14: _context11.prev = 14; _context11.t0 = _context11['catch'](2); _iterator8.e(_context11.t0); case 17: _context11.prev = 17; _iterator8.f(); return _context11.finish(17); case 20: return _context11.abrupt('return', processedMap); case 21: case 'end': return _context11.stop(); } } }, _callee11, null, [[2, 14, 17, 20]], ); }), ), ); return koconutToReturn; }, }, { key: 'filterValues', value: function filterValues(predicate) { var _this11 = this; var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; predicate = predicate.bind(thisArg); var koconutToReturn = new KoconutMap(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee12() { var processedMap; var _iterator9; var _step9; var eachEntry; return _regenerator['default'].wrap( function _callee12$(_context12) { while (1) { switch ((_context12.prev = _context12.next)) { case 0: processedMap = new Map(); _iterator9 = _createForOfIteratorHelper( _this11.combinedDataWrapper, ); _context12.prev = 2; _iterator9.s(); case 4: if ((_step9 = _iterator9.n()).done) { _context12.next = 12; break; } eachEntry = _step9.value; _context12.next = 8; return predicate(eachEntry.value); case 8: if (!_context12.sent) { _context12.next = 10; break; } processedMap.set(eachEntry.key, eachEntry.value); case 10: _context12.next = 4; break; case 12: _context12.next = 17; break; case 14: _context12.prev = 14; _context12.t0 = _context12['catch'](2); _iterator9.e(_context12.t0); case 17: _context12.prev = 17; _iterator9.f(); return _context12.finish(17); case 20: return _context12.abrupt('return', processedMap); case 21: case 'end': return _context12.stop(); } } }, _callee12, null, [[2, 14, 17, 20]], ); }), ), ); return koconutToReturn; }, }, { key: 'minus', value: function minus() { var _this12 = this; for ( var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++ ) { keys[_key] = arguments[_key]; } var koconutToReturn = new KoconutMap(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee13() { var processedMap; var koconutKeysToExceptArray; var _iterator10; var _step10; var eachEntry; return _regenerator['default'].wrap( function _callee13$(_context13) { while (1) { switch ((_context13.prev = _context13.next)) { case 0: processedMap = new Map(); koconutKeysToExceptArray = _module.KoconutArray.from(keys); _iterator10 = _createForOfIteratorHelper( _this12.combinedDataWrapper, ); _context13.prev = 3; _iterator10.s(); case 5: if ((_step10 = _iterator10.n()).done) { _context13.next = 13; break; } eachEntry = _step10.value; _context13.next = 9; return koconutKeysToExceptArray .contains(eachEntry.key) ['yield'](); case 9: if (_context13.sent) { _context13.next = 11; break; } processedMap.set(eachEntry.key, eachEntry.value); case 11: _context13.next = 5; break; case 13: _context13.next = 18; break; case 15: _context13.prev = 15; _context13.t0 = _context13['catch'](3); _iterator10.e(_context13.t0); case 18: _context13.prev = 18; _iterator10.f(); return _context13.finish(18); case 21: return _context13.abrupt('return', processedMap); case 22: case 'end': return _context13.stop(); } } }, _callee13, null, [[3, 15, 18, 21]], ); }), ), ); return koconutToReturn; }, }, { key: 'plus', value: function plus() { var _this13 = this; for ( var _len2 = arguments.length, entries = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++ ) { entries[_key2] = arguments[_key2]; } var koconutToReturn = new KoconutMap(); koconutToReturn.setPrevYieldable(this).setProcessor( (0, _asyncToGenerator2['default'])( _regenerator['default'].mark(function _callee14() { var processedMap; var _iterator11; var _step11; var eachElement; var eachPair; var eachEntry; return _regenerator['default'].wrap( function _callee14$(_context14) { while (1) { switch ((_context14.prev = _context14.next)) { case 0: processedMap = new Map(_this13.data); _iterator11 = _createForOfIteratorHelper(entries); _context14.prev = 2; _iterator11.s(); case 4: if ((_step11 = _iterator11.n()).done) { _context14.next = 31; break; } eachElement = _step11.value; if (!(eachElement instanceof _module.Pair)) { _context14.next = 10; break; } processedMap.set( eachElement.first, eachElement.second, ); _context14.next = 29; break; case 10: if (!(eachElement instanceof _module.KoconutPair)) { _context14.next = 17; break; } _context14.next = 13; return eachElement['yield'](); case 13: eachPair = _context14.sent; if (eachPair != null) processedMap.set(eachPair.first, eachPair.second); _context14.next = 29; break; case 17: if (!(eachElement instanceof _module.Entry)) { _context14.next = 21; break; } processedMap.set(eachElement.key, eachElement.value); _context14.next = 29; break; case 21: if (!(eachElement instanceof _module.KoconutEntry)) { _context14.next = 28;