mirror of
https://github.com/flynx/types.js.git
synced 2025-10-29 02:20:07 +00:00
minor refactoring...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
a5e0ae6d64
commit
c3ca91050c
@ -49,25 +49,29 @@ module.UniqueKeyMap = object.Constructor('UniqueKeyMap', Map, {
|
||||
|
||||
// Extended API...
|
||||
//
|
||||
set: function(key, elem){
|
||||
set: function(key, elem, return_key=false){
|
||||
var names
|
||||
var n
|
||||
// index
|
||||
this.__keys.set(elem,
|
||||
names = this.__keys.get(elem) || new Set())
|
||||
// key/elem already exists...
|
||||
if(this.__unique_key_value__
|
||||
&& names.has(key)){
|
||||
return this }
|
||||
return return_key ?
|
||||
key
|
||||
: this }
|
||||
names.add(key)
|
||||
// make name unique...
|
||||
var n = key
|
||||
var i = 0
|
||||
while(this.has(n)){
|
||||
i++
|
||||
n = this.__key_pattern__
|
||||
.replace(/\$KEY/, key)
|
||||
.replace(/\$COUNT/, i) }
|
||||
// add the elem with the unique name...
|
||||
return object.parentCall(UniqueKeyMap.prototype, 'set', this, n, elem) },
|
||||
var res = object.parentCall(
|
||||
UniqueKeyMap.prototype,
|
||||
'set',
|
||||
this,
|
||||
n = this.uniqieKey(key),
|
||||
elem)
|
||||
return return_key ?
|
||||
n
|
||||
: res },
|
||||
delete: function(key){
|
||||
var s = this.__keys.get(this.get(key))
|
||||
if(s){
|
||||
@ -79,6 +83,15 @@ module.UniqueKeyMap = object.Constructor('UniqueKeyMap', Map, {
|
||||
|
||||
// New API...
|
||||
//
|
||||
uniqieKey: function(key){
|
||||
var n = key
|
||||
var i = 0
|
||||
while(this.has(n)){
|
||||
i++
|
||||
n = this.__key_pattern__
|
||||
.replace(/\$KEY/, key)
|
||||
.replace(/\$COUNT/, i) }
|
||||
return n },
|
||||
rename: function(from, to){
|
||||
var e = this.get(from)
|
||||
this.delete(from)
|
||||
|
||||
117
package-lock.json
generated
117
package-lock.json
generated
@ -1,18 +1,133 @@
|
||||
{
|
||||
"name": "ig-types",
|
||||
"version": "1.0.0",
|
||||
"version": "2.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
|
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"ig-argv": {
|
||||
"version": "2.15.0",
|
||||
"resolved": "https://registry.npmjs.org/ig-argv/-/ig-argv-2.15.0.tgz",
|
||||
"integrity": "sha512-Y9x7B96bq0T6yXIIMYJ6f3V9j7wOJjwpXytA8QpZn1LTM2D4C+YG2Ljl/rj+fhw29q42GNbZyVPsHsISPYVpsw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ig-object": "^5.2.6"
|
||||
}
|
||||
},
|
||||
"ig-object": {
|
||||
"version": "5.2.8",
|
||||
"resolved": "https://registry.npmjs.org/ig-object/-/ig-object-5.2.8.tgz",
|
||||
"integrity": "sha512-EzT4CP6d6lI8bnknNgT3W8mUQhSVXflO0yPbKD4dKsFcINiC6npjoEBz+8m3VQmWJhc+36pXD4JLwNxUEgzi+Q=="
|
||||
},
|
||||
"ig-test": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/ig-test/-/ig-test-1.4.4.tgz",
|
||||
"integrity": "sha512-x5GuZY7ABQ1yt4cbh+c0hzqujAjDpD72mzRYqOCBWkhfikom589AYvTuxJcW3nM8hvIMZW6226dvHbR6+yEtsw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"colors": "^1.4.0",
|
||||
"glob": "^7.1.6",
|
||||
"ig-argv": "^2.13.2",
|
||||
"ig-object": "^5.2.6"
|
||||
}
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"dev": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"object-run": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/object-run/-/object-run-1.0.1.tgz",
|
||||
"integrity": "sha512-FkYGSw3wr5DLfEueCJvbkCh3jZE1DTVCEQNshQwH8zpUFn0ahyM1cQMNFfzTMC3DSTBHVH7+7+DAf1WDWn+EXA=="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ig-types",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.2",
|
||||
"description": "Generic JavaScript types and type extensions...",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
@ -23,5 +23,9 @@
|
||||
"dependencies": {
|
||||
"ig-object": "^5.2.8",
|
||||
"object-run": "^1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ig-test": "*",
|
||||
"color": "*"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user