@e280/stz 0.2.0-0 → 0.2.0-1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.2.0-0",
3
+ "version": "0.2.0-1",
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
@@ -31,6 +31,34 @@ export class MapG<K, V> extends Map<K, V> {
31
31
  }
32
32
  }
33
33
 
34
+ /** extended weak map with handy methods like `require` and `guarantee` */
35
+ export class WeakMapG<K extends WeakKey, V> extends WeakMap<K, V> {
36
+ static require<K extends WeakKey, V>(map: WeakMap<K, V>, key: K) {
37
+ if (map.has(key))
38
+ return map.get(key)!
39
+ else
40
+ throw new Error(`required key not found`)
41
+ }
42
+
43
+ static guarantee<K extends WeakKey, V>(map: WeakMap<K, V>, key: K, make: () => V) {
44
+ if (map.has(key))
45
+ return map.get(key)!
46
+ else {
47
+ const value = make()
48
+ map.set(key, value)
49
+ return value
50
+ }
51
+ }
52
+
53
+ require(key: K) {
54
+ return WeakMapG.require(this, key)
55
+ }
56
+
57
+ guarantee(key: K, make: () => V) {
58
+ return WeakMapG.guarantee(this, key, make)
59
+ }
60
+ }
61
+
34
62
  export type Identifiable<Id = any> = {id: Id}
35
63
 
36
64
  /** js map but for things that have an `id` field */
package/x/map-g.d.ts CHANGED
@@ -6,6 +6,13 @@ export declare class MapG<K, V> extends Map<K, V> {
6
6
  require(key: K): NonNullable<V>;
7
7
  guarantee(key: K, make: () => V): V;
8
8
  }
9
+ /** extended weak map with handy methods like `require` and `guarantee` */
10
+ export declare class WeakMapG<K extends WeakKey, V> extends WeakMap<K, V> {
11
+ static require<K extends WeakKey, V>(map: WeakMap<K, V>, key: K): NonNullable<V>;
12
+ static guarantee<K extends WeakKey, V>(map: WeakMap<K, V>, key: K, make: () => V): V;
13
+ require(key: K): NonNullable<V>;
14
+ guarantee(key: K, make: () => V): V;
15
+ }
9
16
  export type Identifiable<Id = any> = {
10
17
  id: Id;
11
18
  };
package/x/map-g.js CHANGED
@@ -25,6 +25,30 @@ export class MapG extends Map {
25
25
  return MapG.guarantee(this, key, make);
26
26
  }
27
27
  }
28
+ /** extended weak map with handy methods like `require` and `guarantee` */
29
+ export class WeakMapG extends WeakMap {
30
+ static require(map, key) {
31
+ if (map.has(key))
32
+ return map.get(key);
33
+ else
34
+ throw new Error(`required key not found`);
35
+ }
36
+ static guarantee(map, key, make) {
37
+ if (map.has(key))
38
+ return map.get(key);
39
+ else {
40
+ const value = make();
41
+ map.set(key, value);
42
+ return value;
43
+ }
44
+ }
45
+ require(key) {
46
+ return WeakMapG.require(this, key);
47
+ }
48
+ guarantee(key, make) {
49
+ return WeakMapG.guarantee(this, key, make);
50
+ }
51
+ }
28
52
  /** js map but for things that have an `id` field */
29
53
  export class PoolG extends MapG {
30
54
  got(value) {
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,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"}
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;AAED,0EAA0E;AAC1E,MAAM,OAAO,QAA+B,SAAQ,OAAa;IAChE,MAAM,CAAC,OAAO,CAAuB,GAAkB,EAAE,GAAM;QAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;;YAEpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,CAAC,SAAS,CAAuB,GAAkB,EAAE,GAAM,EAAE,IAAa;QAC/E,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,OAAO,CAAC,GAAM;QACb,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,GAAM,EAAE,IAAa;QAC9B,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC3C,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"}