@e280/stz 0.0.0-18 → 0.0.0-19

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.0.0-18",
3
+ "version": "0.0.0-19",
4
4
  "description": "everyday ts fns for everything",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
package/s/coalesce.ts CHANGED
@@ -1,4 +1,5 @@
1
1
 
2
+ /** return a single function that calls all the provided functions */
2
3
  export function coalesce<A extends any[] = []>(...fns: ((...a: A) => void)[]) {
3
4
  return (...a: A) => fns.forEach(fn => fn(...a))
4
5
  }
@@ -86,14 +86,5 @@ export const Bytename = {
86
86
  fromHex(hex: string, options?: Partial<BytenameOptions>) {
87
87
  return Bytename.fromBytes(Hex.bytes(hex), options)
88
88
  },
89
-
90
- /** @deprecated renamed to `fromBytes` */
91
- string(bytes: Uint8Array, options: Partial<BytenameOptions> = {}) { return Bytename.fromBytes(bytes, options) },
92
-
93
- /** @deprecated renamed to `toBytes` */
94
- bytes(bytename: string) { return Bytename.toBytes(bytename) },
95
-
96
- /** @deprecated renamed to `toHex` */
97
- hex(bytename: string) { return Bytename.toHex(bytename) },
98
89
  }
99
90
 
@@ -20,10 +20,10 @@ export type ThumbprintData = {
20
20
  /**
21
21
  * Thumbprint is a friendly presentation format for arbitrary binary data.
22
22
  * - looks like "nodlyn.fasrep.habbud.ralwel.Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
23
- * - the "sigil" is the first bytes that are shown in bytename format
24
- * - the "bulk" is the rest of the data in base58
25
- * - originally designed to be a nice way to present 256-bit ids
26
- * - can actually represent any number of bytes
23
+ * - the preview: "nodlyn.fasrep.habbud.ralwel" (bytename format)
24
+ * - the bulk: "Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ" (base58 format)
25
+ * - the sigil: "nodlyn.fasrep" (shorter part of the bytename)
26
+ * - originally designed to be a nice way to present 256-bit ids, but can actually represent any number of bytes
27
27
  */
28
28
  export const Thumbprint = {
29
29
  defaults: (<ThumbprintOptions>{
package/s/deadline.ts CHANGED
@@ -24,3 +24,4 @@ export function deadline<R>(milliseconds: number, message: string, fn: () => Pro
24
24
  .finally(() => clearTimeout(id))
25
25
  })
26
26
  }
27
+
@@ -1,6 +1,6 @@
1
1
 
2
2
  /** a promise which can be resolved from the outside */
3
- export type DeferredPromise<R> = {
3
+ export type Deferred<R> = {
4
4
  promise: Promise<R>
5
5
  resolve: (result: R) => void
6
6
  reject: (reason: any) => void
@@ -10,7 +10,7 @@ export type DeferredPromise<R> = {
10
10
  }
11
11
 
12
12
  /** returns a deferred promise with exposed resolve and reject fns */
13
- export function deferPromise<R>(): DeferredPromise<R> {
13
+ export function defer<R>(): Deferred<R> {
14
14
  let resolve!: (result: R) => void
15
15
  let reject!: (reason: any) => void
16
16
 
package/s/drill.ts CHANGED
@@ -1,9 +1,7 @@
1
1
 
2
2
  import {is} from "./is.js"
3
3
 
4
- /**
5
- * return a value within an object tree, found at the given path.
6
- */
4
+ /** return a value within an object tree, found at the given path. */
7
5
  export function drill<xResult>(
8
6
  object: {[key: string]: any},
9
7
  path: string[],
@@ -13,7 +11,7 @@ export function drill<xResult>(
13
11
 
14
12
  for (const key of path) {
15
13
  current = current[key]
16
- if (is.unavailable(current))
14
+ if (is.unset(current))
17
15
  break
18
16
  }
19
17
 
@@ -0,0 +1,9 @@
1
+
2
+ export class IdCounter {
3
+ constructor(public count = 0) {}
4
+
5
+ next() {
6
+ return this.count++
7
+ }
8
+ }
9
+
package/s/index.ts CHANGED
@@ -16,10 +16,11 @@ export * from "./coalesce.js"
16
16
  export * from "./concurrent.js"
17
17
  export * from "./deadline.js"
18
18
  export * from "./dedupe.js"
19
- export * from "./defer-promise.js"
19
+ export * from "./defer.js"
20
20
  export * from "./drill.js"
21
21
  export * from "./escape-regex.js"
22
22
  export * from "./hat.js"
23
+ export * from "./id-counter.js"
23
24
  export * from "./is.js"
24
25
  export * from "./loopy.js"
25
26
  export * from "./map-g.js"
package/s/is.ts CHANGED
@@ -1,9 +1,9 @@
1
1
 
2
- export const is = {
3
- available: <X>(x: X): x is NonNullable<X> =>
2
+ export const is = Object.freeze({
3
+ set: <X>(x: X): x is NonNullable<X> =>
4
4
  x !== undefined && x !== null,
5
5
 
6
- unavailable: (x: any): x is (undefined | null) =>
6
+ unset: (x: any): x is (undefined | null) =>
7
7
  x === undefined || x === null,
8
8
 
9
9
  boolean: (x: any): x is boolean =>
@@ -23,5 +23,11 @@ export const is = {
23
23
 
24
24
  array: (x: any | any[]): x is any[] =>
25
25
  Array.isArray(x),
26
- }
26
+
27
+ fn: (x: any): x is (...a: any[]) => any =>
28
+ typeof x === "function",
29
+
30
+ symbol: (x: any): x is symbol =>
31
+ typeof x === "symbol",
32
+ })
27
33
 
package/s/map-g.ts CHANGED
@@ -1,11 +1,11 @@
1
1
 
2
- /** js map, but with handy methods like `require` and `guarantee` */
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
5
  const value = map.get(key)
6
6
  if (value === undefined)
7
7
  throw new Error(`required key not found: "${key}"`)
8
- return value
8
+ return value as V
9
9
  }
10
10
 
11
11
  static guarantee<K, V>(map: Map<K, V>, key: K, make: () => V) {
package/s/nap.ts CHANGED
@@ -1,4 +1,5 @@
1
1
 
2
+ /** create a promise that waits for a number of milliseconds. */
2
3
  export const nap = (milliseconds: number = 0) => (
3
4
  new Promise<void>(resolve => setTimeout(resolve, milliseconds))
4
5
  )
package/s/pubsub.ts CHANGED
@@ -1,20 +1,35 @@
1
1
 
2
- import {deferPromise} from "./defer-promise.js"
2
+ import {defer} from "./defer.js"
3
3
 
4
4
  export type Listener<A extends any[]> = (...a: A) => (void | Promise<void>)
5
5
 
6
6
  export interface Xub<A extends any[] = []> {
7
+
8
+ /** publish to all subscribed listeners. */
7
9
  pub(...a: A): Promise<void>
10
+
11
+ /** subscribe a listener function. */
8
12
  sub(fn: Listener<A>): () => void
13
+
14
+ /**
15
+ * subscribe a listener function.
16
+ * @alias sub
17
+ */
9
18
  on(fn: Listener<A>): () => void
19
+
20
+ /** subscribe a listener function that unsubscribes itself after being invoked. */
10
21
  once(): Promise<A>
22
+
23
+ /** wipe all listeners attached to this. */
11
24
  clear(): void
12
25
  }
13
26
 
27
+ /** subscriber fn that can be published to. */
14
28
  export interface Sub<A extends any[] = []> extends Xub<A> {
15
29
  (fn: Listener<A>): () => void
16
30
  }
17
31
 
32
+ /** publisher fn that can be published to. */
18
33
  export interface Pub<A extends any[] = []> extends Xub<A> {
19
34
  (...a: A): Promise<void>
20
35
  }
@@ -32,7 +47,7 @@ export function xub<A extends any[] = []>() {
32
47
  }
33
48
 
34
49
  async function once() {
35
- const {promise, resolve} = deferPromise<A>()
50
+ const {promise, resolve} = defer<A>()
36
51
  const unsubscribe = sub((...a) => {
37
52
  resolve(a)
38
53
  unsubscribe()
package/x/coalesce.d.ts CHANGED
@@ -1 +1,2 @@
1
+ /** return a single function that calls all the provided functions */
1
2
  export declare function coalesce<A extends any[] = []>(...fns: ((...a: A) => void)[]): (...a: A) => void;
package/x/coalesce.js CHANGED
@@ -1,3 +1,4 @@
1
+ /** return a single function that calls all the provided functions */
1
2
  export function coalesce(...fns) {
2
3
  return (...a) => fns.forEach(fn => fn(...a));
3
4
  }
package/x/coalesce.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"coalesce.js","sourceRoot":"","sources":["../s/coalesce.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,QAAQ,CAAuB,GAAG,GAA0B;IAC3E,OAAO,CAAC,GAAG,CAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"coalesce.js","sourceRoot":"","sources":["../s/coalesce.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,MAAM,UAAU,QAAQ,CAAuB,GAAG,GAA0B;IAC3E,OAAO,CAAC,GAAG,CAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC"}
@@ -16,10 +16,4 @@ export declare const Bytename: {
16
16
  toBytes(bytename: string): Uint8Array<ArrayBuffer>;
17
17
  toHex(bytename: string): string;
18
18
  fromHex(hex: string, options?: Partial<BytenameOptions>): string;
19
- /** @deprecated renamed to `fromBytes` */
20
- string(bytes: Uint8Array, options?: Partial<BytenameOptions>): string;
21
- /** @deprecated renamed to `toBytes` */
22
- bytes(bytename: string): Uint8Array<ArrayBuffer>;
23
- /** @deprecated renamed to `toHex` */
24
- hex(bytename: string): string;
25
19
  };
@@ -61,11 +61,5 @@ export const Bytename = {
61
61
  fromHex(hex, options) {
62
62
  return Bytename.fromBytes(Hex.bytes(hex), options);
63
63
  },
64
- /** @deprecated renamed to `fromBytes` */
65
- string(bytes, options = {}) { return Bytename.fromBytes(bytes, options); },
66
- /** @deprecated renamed to `toBytes` */
67
- bytes(bytename) { return Bytename.toBytes(bytename); },
68
- /** @deprecated renamed to `toHex` */
69
- hex(bytename) { return Bytename.toHex(bytename); },
70
64
  };
71
65
  //# sourceMappingURL=bytename.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bytename.js","sourceRoot":"","sources":["../../../s/data/bytename/bytename.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bytename.js","sourceRoot":"","sources":["../../../s/data/bytename/bytename.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,10 @@ export type ThumbprintData = {
13
13
  /**
14
14
  * Thumbprint is a friendly presentation format for arbitrary binary data.
15
15
  * - looks like "nodlyn.fasrep.habbud.ralwel.Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
16
- * - the "sigil" is the first bytes that are shown in bytename format
17
- * - the "bulk" is the rest of the data in base58
18
- * - originally designed to be a nice way to present 256-bit ids
19
- * - can actually represent any number of bytes
16
+ * - the preview: "nodlyn.fasrep.habbud.ralwel" (bytename format)
17
+ * - the bulk: "Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ" (base58 format)
18
+ * - the sigil: "nodlyn.fasrep" (shorter part of the bytename)
19
+ * - originally designed to be a nice way to present 256-bit ids, but can actually represent any number of bytes
20
20
  */
21
21
  export declare const Thumbprint: {
22
22
  defaults: ThumbprintOptions;
@@ -4,10 +4,10 @@ import { Bytename } from "./bytename.js";
4
4
  /**
5
5
  * Thumbprint is a friendly presentation format for arbitrary binary data.
6
6
  * - looks like "nodlyn.fasrep.habbud.ralwel.Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
7
- * - the "sigil" is the first bytes that are shown in bytename format
8
- * - the "bulk" is the rest of the data in base58
9
- * - originally designed to be a nice way to present 256-bit ids
10
- * - can actually represent any number of bytes
7
+ * - the preview: "nodlyn.fasrep.habbud.ralwel" (bytename format)
8
+ * - the bulk: "Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ" (base58 format)
9
+ * - the sigil: "nodlyn.fasrep" (shorter part of the bytename)
10
+ * - originally designed to be a nice way to present 256-bit ids, but can actually represent any number of bytes
11
11
  */
12
12
  export const Thumbprint = {
13
13
  defaults: {
@@ -1,5 +1,5 @@
1
1
  /** a promise which can be resolved from the outside */
2
- export type DeferredPromise<R> = {
2
+ export type Deferred<R> = {
3
3
  promise: Promise<R>;
4
4
  resolve: (result: R) => void;
5
5
  reject: (reason: any) => void;
@@ -7,4 +7,4 @@ export type DeferredPromise<R> = {
7
7
  entangle: (outsidePromise: Promise<R>) => Promise<R>;
8
8
  };
9
9
  /** returns a deferred promise with exposed resolve and reject fns */
10
- export declare function deferPromise<R>(): DeferredPromise<R>;
10
+ export declare function defer<R>(): Deferred<R>;
@@ -1,5 +1,5 @@
1
1
  /** returns a deferred promise with exposed resolve and reject fns */
2
- export function deferPromise() {
2
+ export function defer() {
3
3
  let resolve;
4
4
  let reject;
5
5
  const promise = new Promise((res, rej) => {
@@ -12,4 +12,4 @@ export function deferPromise() {
12
12
  }
13
13
  return { promise, resolve, reject, entangle };
14
14
  }
15
- //# sourceMappingURL=defer-promise.js.map
15
+ //# sourceMappingURL=defer.js.map
package/x/defer.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defer.js","sourceRoot":"","sources":["../s/defer.ts"],"names":[],"mappings":"AAWA,qEAAqE;AACrE,MAAM,UAAU,KAAK;IACpB,IAAI,OAA6B,CAAA;IACjC,IAAI,MAA8B,CAAA;IAElC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,OAAO,GAAG,GAAG,CAAA;QACb,MAAM,GAAG,GAAG,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,SAAS,QAAQ,CAAC,OAAmB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAA;AAC5C,CAAC"}
package/x/drill.d.ts CHANGED
@@ -1,6 +1,4 @@
1
- /**
2
- * return a value within an object tree, found at the given path.
3
- */
1
+ /** return a value within an object tree, found at the given path. */
4
2
  export declare function drill<xResult>(object: {
5
3
  [key: string]: any;
6
4
  }, path: string[]): xResult;
package/x/drill.js CHANGED
@@ -1,12 +1,10 @@
1
1
  import { is } from "./is.js";
2
- /**
3
- * return a value within an object tree, found at the given path.
4
- */
2
+ /** return a value within an object tree, found at the given path. */
5
3
  export function drill(object, path) {
6
4
  let current = object;
7
5
  for (const key of path) {
8
6
  current = current[key];
9
- if (is.unavailable(current))
7
+ if (is.unset(current))
10
8
  break;
11
9
  }
12
10
  return current;
package/x/drill.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"drill.js","sourceRoot":"","sources":["../s/drill.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAE1B;;GAEG;AACH,MAAM,UAAU,KAAK,CACnB,MAA4B,EAC5B,IAAc;IAGf,IAAI,OAAO,GAAQ,MAAM,CAAA;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;YAC1B,MAAK;IACP,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"drill.js","sourceRoot":"","sources":["../s/drill.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAE1B,qEAAqE;AACrE,MAAM,UAAU,KAAK,CACnB,MAA4B,EAC5B,IAAc;IAGf,IAAI,OAAO,GAAQ,MAAM,CAAA;IAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACpB,MAAK;IACP,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare class IdCounter {
2
+ count: number;
3
+ constructor(count?: number);
4
+ next(): number;
5
+ }
@@ -0,0 +1,10 @@
1
+ export class IdCounter {
2
+ count;
3
+ constructor(count = 0) {
4
+ this.count = count;
5
+ }
6
+ next() {
7
+ return this.count++;
8
+ }
9
+ }
10
+ //# sourceMappingURL=id-counter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-counter.js","sourceRoot":"","sources":["../s/id-counter.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,SAAS;IACF;IAAnB,YAAmB,QAAQ,CAAC;QAAT,UAAK,GAAL,KAAK,CAAI;IAAG,CAAC;IAEhC,IAAI;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACD"}
package/x/index.d.ts CHANGED
@@ -12,10 +12,11 @@ export * from "./coalesce.js";
12
12
  export * from "./concurrent.js";
13
13
  export * from "./deadline.js";
14
14
  export * from "./dedupe.js";
15
- export * from "./defer-promise.js";
15
+ export * from "./defer.js";
16
16
  export * from "./drill.js";
17
17
  export * from "./escape-regex.js";
18
18
  export * from "./hat.js";
19
+ export * from "./id-counter.js";
19
20
  export * from "./is.js";
20
21
  export * from "./loopy.js";
21
22
  export * from "./map-g.js";
package/x/index.js CHANGED
@@ -12,10 +12,11 @@ export * from "./coalesce.js";
12
12
  export * from "./concurrent.js";
13
13
  export * from "./deadline.js";
14
14
  export * from "./dedupe.js";
15
- export * from "./defer-promise.js";
15
+ export * from "./defer.js";
16
16
  export * from "./drill.js";
17
17
  export * from "./escape-regex.js";
18
18
  export * from "./hat.js";
19
+ export * from "./id-counter.js";
19
20
  export * from "./is.js";
20
21
  export * from "./loopy.js";
21
22
  export * from "./map-g.js";
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
package/x/is.d.ts CHANGED
@@ -1,10 +1,12 @@
1
- export declare const is: {
2
- available: <X>(x: X) => x is NonNullable<X>;
3
- unavailable: (x: any) => x is (undefined | null);
1
+ export declare const is: Readonly<{
2
+ set: <X>(x: X) => x is NonNullable<X>;
3
+ unset: (x: any) => x is (undefined | null);
4
4
  boolean: (x: any) => x is boolean;
5
5
  number: (x: any) => x is number;
6
6
  string: (x: any) => x is string;
7
7
  bigint: (x: any) => x is bigint;
8
8
  object: <X>(x: X) => x is object & NonNullable<X>;
9
9
  array: (x: any | any[]) => x is any[];
10
- };
10
+ fn: (x: any) => x is (...a: any[]) => any;
11
+ symbol: (x: any) => x is symbol;
12
+ }>;
package/x/is.js CHANGED
@@ -1,11 +1,13 @@
1
- export const is = {
2
- available: (x) => x !== undefined && x !== null,
3
- unavailable: (x) => x === undefined || x === null,
1
+ export const is = Object.freeze({
2
+ set: (x) => x !== undefined && x !== null,
3
+ unset: (x) => x === undefined || x === null,
4
4
  boolean: (x) => typeof x === "boolean",
5
5
  number: (x) => typeof x === "number",
6
6
  string: (x) => typeof x === "string",
7
7
  bigint: (x) => typeof x === "bigint",
8
8
  object: (x) => typeof x === "object" && x !== null,
9
9
  array: (x) => Array.isArray(x),
10
- };
10
+ fn: (x) => typeof x === "function",
11
+ symbol: (x) => typeof x === "symbol",
12
+ });
11
13
  //# sourceMappingURL=is.js.map
package/x/is.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"is.js","sourceRoot":"","sources":["../s/is.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,EAAE,GAAG;IACjB,SAAS,EAAE,CAAI,CAAI,EAAuB,EAAE,CAC3C,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,WAAW,EAAE,CAAC,CAAM,EAA2B,EAAE,CAChD,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,OAAO,EAAE,CAAC,CAAM,EAAgB,EAAE,CACjC,OAAO,CAAC,KAAK,SAAS;IAEvB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAI,CAAI,EAAgC,EAAE,CACjD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IAEpC,KAAK,EAAE,CAAC,CAAc,EAAc,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CACjB,CAAA"}
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../s/is.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE,CAAI,CAAI,EAAuB,EAAE,CACrC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,KAAK,EAAE,CAAC,CAAM,EAA2B,EAAE,CAC1C,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;IAE9B,OAAO,EAAE,CAAC,CAAM,EAAgB,EAAE,CACjC,OAAO,CAAC,KAAK,SAAS;IAEvB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;IAEtB,MAAM,EAAE,CAAI,CAAI,EAAgC,EAAE,CACjD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;IAEpC,KAAK,EAAE,CAAC,CAAc,EAAc,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjB,EAAE,EAAE,CAAC,CAAM,EAA6B,EAAE,CACzC,OAAO,CAAC,KAAK,UAAU;IAExB,MAAM,EAAE,CAAC,CAAM,EAAe,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ;CACtB,CAAC,CAAA"}
package/x/map-g.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- /** js map, but with handy methods like `require` and `guarantee` */
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 & ({} | null);
3
+ static require<K, V>(map: Map<K, V>, key: K): 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 & ({} | null);
6
+ require(key: K): 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,4 +1,4 @@
1
- /** js map, but with handy methods like `require` and `guarantee` */
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
4
  const value = map.get(key);
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,oEAAoE;AACpE,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,KAAK,CAAA;IACb,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,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"}
package/x/nap.d.ts CHANGED
@@ -1 +1,2 @@
1
+ /** create a promise that waits for a number of milliseconds. */
1
2
  export declare const nap: (milliseconds?: number) => Promise<void>;
package/x/nap.js CHANGED
@@ -1,2 +1,3 @@
1
+ /** create a promise that waits for a number of milliseconds. */
1
2
  export const nap = (milliseconds = 0) => (new Promise(resolve => setTimeout(resolve, milliseconds)));
2
3
  //# sourceMappingURL=nap.js.map
package/x/nap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nap.js","sourceRoot":"","sources":["../s/nap.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,eAAuB,CAAC,EAAE,EAAE,CAAC,CAChD,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAC/D,CAAA"}
1
+ {"version":3,"file":"nap.js","sourceRoot":"","sources":["../s/nap.ts"],"names":[],"mappings":"AACA,gEAAgE;AAChE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,eAAuB,CAAC,EAAE,EAAE,CAAC,CAChD,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAC/D,CAAA"}
package/x/pubsub.d.ts CHANGED
@@ -1,14 +1,24 @@
1
1
  export type Listener<A extends any[]> = (...a: A) => (void | Promise<void>);
2
2
  export interface Xub<A extends any[] = []> {
3
+ /** publish to all subscribed listeners. */
3
4
  pub(...a: A): Promise<void>;
5
+ /** subscribe a listener function. */
4
6
  sub(fn: Listener<A>): () => void;
7
+ /**
8
+ * subscribe a listener function.
9
+ * @alias sub
10
+ */
5
11
  on(fn: Listener<A>): () => void;
12
+ /** subscribe a listener function that unsubscribes itself after being invoked. */
6
13
  once(): Promise<A>;
14
+ /** wipe all listeners attached to this. */
7
15
  clear(): void;
8
16
  }
17
+ /** subscriber fn that can be published to. */
9
18
  export interface Sub<A extends any[] = []> extends Xub<A> {
10
19
  (fn: Listener<A>): () => void;
11
20
  }
21
+ /** publisher fn that can be published to. */
12
22
  export interface Pub<A extends any[] = []> extends Xub<A> {
13
23
  (...a: A): Promise<void>;
14
24
  }
package/x/pubsub.js CHANGED
@@ -1,4 +1,4 @@
1
- import { deferPromise } from "./defer-promise.js";
1
+ import { defer } from "./defer.js";
2
2
  export function xub() {
3
3
  const set = new Set();
4
4
  function sub(fn) {
@@ -9,7 +9,7 @@ export function xub() {
9
9
  await Promise.all([...set].map(fn => fn(...a)));
10
10
  }
11
11
  async function once() {
12
- const { promise, resolve } = deferPromise();
12
+ const { promise, resolve } = defer();
13
13
  const unsubscribe = sub((...a) => {
14
14
  resolve(a);
15
15
  unsubscribe();
package/x/pubsub.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../s/pubsub.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAoB/C,MAAM,UAAU,GAAG;IAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAe,CAAA;IAElC,SAAS,GAAG,CAAC,EAAe;QAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACX,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,GAAG,CAAI;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,UAAU,IAAI;QAClB,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,YAAY,EAAK,CAAA;QAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAChC,OAAO,CAAC,CAAC,CAAC,CAAA;YACV,WAAW,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IACf,CAAC;IAED,SAAS,KAAK;QACb,GAAG,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;IACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;IACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAqB,CAAA;AACtC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../s/pubsub.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAmChC,MAAM,UAAU,GAAG;IAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAe,CAAA;IAElC,SAAS,GAAG,CAAC,EAAe;QAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACX,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,GAAG,CAAI;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,UAAU,IAAI;QAClB,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,KAAK,EAAK,CAAA;QACrC,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAChC,OAAO,CAAC,CAAC,CAAC,CAAA;YACV,WAAW,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IACf,CAAC;IAED,SAAS,KAAK;QACb,GAAG,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;IACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACb,GAAG,CAAC,EAAE,GAAG,GAAG,CAAA;IACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAqB,CAAA;AACtC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,GAAG,CAAuB,QAAsB;IAC/D,MAAM,EAAE,GAAG,GAAG,EAAK,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,QAAQ;QACX,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACjB,OAAO,EAAE,CAAA;AACV,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"defer-promise.js","sourceRoot":"","sources":["../s/defer-promise.ts"],"names":[],"mappings":"AAWA,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC3B,IAAI,OAA6B,CAAA;IACjC,IAAI,MAA8B,CAAA;IAElC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,OAAO,GAAG,GAAG,CAAA;QACb,MAAM,GAAG,GAAG,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,SAAS,QAAQ,CAAC,OAAmB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,OAAO,CAAA;IACf,CAAC;IAED,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAA;AAC5C,CAAC"}