@bunt/util
Advanced tools
Comparing version 0.24.10 to 0.24.11
@@ -0,6 +1,16 @@ | ||
export declare type XMapArrayFactory<K, V> = (value: V, index: number, array: V[]) => K; | ||
export declare type XMapInitializer<K, V> = (key: K) => V; | ||
export declare type XMapArgs<K, V> = [ | ||
values: [K, V][], | ||
initializer?: (key: K) => V | ||
] | [ | ||
initializer?: (key: K) => V | ||
]; | ||
export declare class XMap<K, V> extends Map<K, V> { | ||
#private; | ||
constructor(initializer?: (key: K) => V); | ||
constructor(...args: XMapArgs<K, V>); | ||
static fromArray<K, V>(values: V[], key: XMapArrayFactory<K, V>, initializer?: XMapInitializer<K, V>): XMap<K, V>; | ||
static fromObject<T extends Record<any, any>, K extends keyof T>(values: T, initializer?: XMapInitializer<K, T[K]>): XMap<K, T[K]>; | ||
ensure(key: K, initializer?: XMapInitializer<K, V> | undefined): V; | ||
pick(key: K): V | undefined; | ||
} |
@@ -19,7 +19,21 @@ "use strict"; | ||
class XMap extends Map { | ||
constructor(initializer) { | ||
constructor(...args) { | ||
super(); | ||
_XMap_initializer.set(this, void 0); | ||
const [valuesOr, initializer] = args; | ||
__classPrivateFieldSet(this, _XMap_initializer, initializer, "f"); | ||
if ((0, is_1.isArray)(valuesOr)) { | ||
valuesOr.forEach(([key, value]) => this.set(key, value)); | ||
__classPrivateFieldSet(this, _XMap_initializer, initializer, "f"); | ||
} | ||
if ((0, is_1.isFunction)(valuesOr)) { | ||
__classPrivateFieldSet(this, _XMap_initializer, valuesOr, "f"); | ||
} | ||
} | ||
static fromArray(values, key, initializer) { | ||
return new XMap(values.map((value, index, array) => [key(value, index, array), value]), initializer); | ||
} | ||
static fromObject(values, initializer) { | ||
return new XMap(Object.entries(values), initializer); | ||
} | ||
ensure(key, initializer = __classPrivateFieldGet(this, _XMap_initializer, "f")) { | ||
@@ -35,2 +49,7 @@ const exists = this.has(key); | ||
} | ||
pick(key) { | ||
const value = this.get(key); | ||
this.delete(key); | ||
return value; | ||
} | ||
} | ||
@@ -37,0 +56,0 @@ exports.XMap = XMap; |
{ | ||
"name": "@bunt/util", | ||
"version": "0.24.10", | ||
"version": "0.24.11", | ||
"keywords": [ | ||
@@ -29,3 +29,3 @@ "typescript" | ||
"license": "MIT", | ||
"gitHead": "c4806b42c01121da77d820a41dc1d4c33e0a3e53" | ||
"gitHead": "e59f3252b85e2ebdfd06c039a62f18fe7554afbe" | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
148326
2269