UNPKG

list-map

Version:

A list-map collection in the form of key, value, that ensures the index.

11 lines (10 loc) 1.94 kB
/* Copyright (c) 2019 Daybrush name: list-map license: MIT author: Daybrush repository: git+https://github.com/daybrush/list-map.git version: 0.1.1 */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@daybrush/utils")):"function"==typeof define&&define.amd?define(["@daybrush/utils"],e):(t=t||self).ListMap=e(t.utils)}(this,function(s){"use strict";return function(){function t(){this.obj={},this.objKeys=[]}var e=t.prototype;return e.has=function(t){return t in this.obj},e.get=function(t){return this.obj[t]},e.set=function(t,e){return this.has(t)||this.objKeys.push(t),this.setItem(t,e),this},e.size=function(){return this.objKeys.length},e.keys=function(){return this.objKeys.slice()},e.values=function(){var e=this.obj;return this.objKeys.map(function(t){return e[t]})},e.getIndex=function(t){return this.objKeys.indexOf(t)},e.findIndex=function(n){var i=this.obj;return s.findIndex(this.objKeys,function(t,e){return n(i[t],t,e,i)})},e.find=function(n){var i=this.obj,t=s.find(this.objKeys,function(t,e){return n(i[t],t,e,i)});return i[t]},e.remove=function(t){if(this.has(t)){var e=this.getIndex(t);this.removeItem(t),this.spliceKeys(e,1)}return this},e.splice=function(t,e){for(var s=this,n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var r=n.filter(function(t){var e=t[0],n=t[1],i=s.has(e);return s.setItem(e,n),!i}),o=this.spliceKeys.apply(this,[t,e].concat(r.map(function(t){return t[0]})));o.forEach(function(t){s.removeItem(t)});var u=this.objKeys;return o.map(function(t){return[t,u[t]]})},e.forEach=function(n){var i=this.obj;return this.objKeys.forEach(function(t,e){return n(i[t],t,e,i)}),this},e.setItem=function(t,e){this.obj[t]=e},e.removeItem=function(t){delete this.obj[t]},e.spliceKeys=function(t,e){for(var n,i=[],s=2;s<arguments.length;s++)i[s-2]=arguments[s];return(n=this.objKeys).splice.apply(n,[t,e].concat(i))},t}()}); //# sourceMappingURL=list-map.min.js.map