@e280/stz 0.0.0-34 → 0.0.0-35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,12 +23,12 @@ const map = new MapG<number, string>([
23
23
  ])
24
24
  ```
25
25
 
26
- - `map.require(key)` — throws error if the value is undefined
26
+ - `map.require(key)` — returns the value for key — if missing, throw an error
27
27
  ```ts
28
28
  const value = map.require(1)
29
29
  // "hello"
30
30
  ```
31
- - `map.guarantee(key, make)` — returns the value for `key`, but if undefined, run `make` to set the value
31
+ - `map.guarantee(key, make)` — returns the value for `key` if missing, run `make` to set the value and return it
32
32
  ```ts
33
33
  const value = map.guarantee(3, () => "rofl")
34
34
  // "rofl"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.0.0-34",
3
+ "version": "0.0.0-35",
4
4
  "description": "everyday ts fns for everything",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
package/s/map-g.ts CHANGED
@@ -2,21 +2,20 @@
2
2
  /** extended js map with handy methods like `require` and `guarantee` */
3
3
  export class MapG<K, V> extends Map<K, V> {
4
4
  static require<K, V>(map: Map<K, V>, key: K) {
5
- const value = map.get(key)
6
- if (value === undefined)
5
+ if (map.has(key))
6
+ return map.get(key)!
7
+ else
7
8
  throw new Error(`required key not found: "${key}"`)
8
- return value as V
9
9
  }
10
10
 
11
11
  static guarantee<K, V>(map: Map<K, V>, key: K, make: () => V) {
12
- let value = map.get(key)
13
-
14
- if (value === undefined) {
15
- value = make()
12
+ if (map.has(key))
13
+ return map.get(key)!
14
+ else {
15
+ const value = make()
16
16
  map.set(key, value)
17
+ return value
17
18
  }
18
-
19
- return value
20
19
  }
21
20
 
22
21
  array() {
package/x/map-g.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /** extended js map with handy methods like `require` and `guarantee` */
2
2
  export declare class MapG<K, V> extends Map<K, V> {
3
- static require<K, V>(map: Map<K, V>, key: K): V;
3
+ static require<K, V>(map: Map<K, V>, key: K): NonNullable<V>;
4
4
  static guarantee<K, V>(map: Map<K, V>, key: K, make: () => V): V;
5
5
  array(): [K, V][];
6
- require(key: K): V;
6
+ require(key: K): NonNullable<V>;
7
7
  guarantee(key: K, make: () => V): V;
8
8
  }
9
9
  export type Identifiable<Id = any> = {
package/x/map-g.js CHANGED
@@ -1,18 +1,19 @@
1
1
  /** extended js map with handy methods like `require` and `guarantee` */
2
2
  export class MapG extends Map {
3
3
  static require(map, key) {
4
- const value = map.get(key);
5
- if (value === undefined)
4
+ if (map.has(key))
5
+ return map.get(key);
6
+ else
6
7
  throw new Error(`required key not found: "${key}"`);
7
- return value;
8
8
  }
9
9
  static guarantee(map, key, make) {
10
- let value = map.get(key);
11
- if (value === undefined) {
12
- value = make();
10
+ if (map.has(key))
11
+ return map.get(key);
12
+ else {
13
+ const value = make();
13
14
  map.set(key, value);
15
+ return value;
14
16
  }
15
- return value;
16
17
  }
17
18
  array() {
18
19
  return [...this];
package/x/map-g.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"map-g.js","sourceRoot":"","sources":["../s/map-g.ts"],"names":[],"mappings":"AACA,wEAAwE;AACxE,MAAM,OAAO,IAAW,SAAQ,GAAS;IACxC,MAAM,CAAC,OAAO,CAAO,GAAc,EAAE,GAAM;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAA;QACpD,OAAO,KAAU,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAO,GAAc,EAAE,GAAM,EAAE,IAAa;QAC3D,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAExB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,GAAG,IAAI,EAAE,CAAA;YACd,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;CACD;AAID,oDAAoD;AACpD,MAAM,OAAO,KAA8B,SAAQ,IAAgB;IAClE,GAAG,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,KAAQ;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;CACD"}
1
+ {"version":3,"file":"map-g.js","sourceRoot":"","sources":["../s/map-g.ts"],"names":[],"mappings":"AACA,wEAAwE;AACxE,MAAM,OAAO,IAAW,SAAQ,GAAS;IACxC,MAAM,CAAC,OAAO,CAAO,GAAc,EAAE,GAAM;QAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;;YAEpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,CAAC,SAAS,CAAO,GAAc,EAAE,GAAM,EAAE,IAAa;QAC3D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;aAChB,CAAC;YACL,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACnB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAED,KAAK;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;CACD;AAID,oDAAoD;AACpD,MAAM,OAAO,KAA8B,SAAQ,IAAgB;IAClE,GAAG,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,KAAQ;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACzB,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;CACD"}