From a5e0ae6d645fcb8b2526da1c32f525bff7b0ceca Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sun, 4 Oct 2020 17:05:57 +0300 Subject: [PATCH] bugfix... Signed-off-by: Alex A. Naanou --- containers.js | 17 +++++++---------- package.json | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/containers.js b/containers.js index 1e0ac10..e99be1d 100644 --- a/containers.js +++ b/containers.js @@ -13,9 +13,6 @@ var object = require('ig-object') /*********************************************************************/ -// XXX should we have the restriction of requiring unique elements??? -// XXX move this to browse2 and use it as an option/basis for list... -// XXX BUG: UniqueKeyMap([['a', 123], ...]) breaks... var UniqueKeyMap = module.UniqueKeyMap = object.Constructor('UniqueKeyMap', Map, { @@ -28,9 +25,11 @@ module.UniqueKeyMap = object.Constructor('UniqueKeyMap', Map, { // ... // ]) // - // XXX might be a good idea to change the value to a list of original - // names... - __keys: null, + // XXX should .__keys_index be non-enumerable??? + get __keys(){ + return (this.__keys_index = + this.__keys_index || new Map()) }, + // Patter to be used to generate unique key... __key_pattern__: '$KEY ($COUNT)', @@ -55,7 +54,8 @@ module.UniqueKeyMap = object.Constructor('UniqueKeyMap', Map, { this.__keys.set(elem, names = this.__keys.get(elem) || new Set()) // key/elem already exists... - if(this.__unique_key_value__ && names.has(key)){ + if(this.__unique_key_value__ + && names.has(key)){ return this } names.add(key) // make name unique... @@ -94,9 +94,6 @@ module.UniqueKeyMap = object.Constructor('UniqueKeyMap', Map, { return res }, []) } // get keys used to set the values... return [...(this.__keys.get(elem) || [])] }, - - __init__: function(){ - this.__keys = new Map() }, }) diff --git a/package.json b/package.json index a04dfef..f69b2f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "2.0.0", + "version": "2.0.1", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": {