@e280/stz 0.2.29 → 0.2.31

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.
Files changed (47) hide show
  1. package/README.md +8 -6
  2. package/package.json +2 -2
  3. package/s/data/base-x.ts +26 -9
  4. package/s/data/data.test.ts +5 -4
  5. package/s/dig/test.ts +2 -2
  6. package/s/error-string.ts +7 -0
  7. package/s/index.ts +1 -0
  8. package/s/ok/fns/attempt.ts +29 -0
  9. package/s/ok/fns/err.ts +1 -1
  10. package/s/ok/fns/get.ts +20 -0
  11. package/s/ok/fns/need.ts +11 -2
  12. package/s/ok/index.ts +2 -1
  13. package/s/ok/test.ts +36 -14
  14. package/x/data/base-x.d.ts +1 -0
  15. package/x/data/base-x.js +26 -8
  16. package/x/data/base-x.js.map +1 -1
  17. package/x/data/data.test.js +5 -3
  18. package/x/data/data.test.js.map +1 -1
  19. package/x/dig/test.js +2 -2
  20. package/x/dig/test.js.map +1 -1
  21. package/x/error-string.d.ts +1 -0
  22. package/x/error-string.js +9 -0
  23. package/x/error-string.js.map +1 -0
  24. package/x/index.d.ts +1 -0
  25. package/x/index.js +1 -0
  26. package/x/index.js.map +1 -1
  27. package/x/ok/fns/attempt.d.ts +3 -0
  28. package/x/ok/fns/attempt.js +22 -0
  29. package/x/ok/fns/attempt.js.map +1 -0
  30. package/x/ok/fns/err.d.ts +1 -1
  31. package/x/ok/fns/err.js.map +1 -1
  32. package/x/ok/fns/get.d.ts +7 -0
  33. package/x/ok/fns/get.js +15 -0
  34. package/x/ok/fns/get.js.map +1 -0
  35. package/x/ok/fns/need.d.ts +6 -2
  36. package/x/ok/fns/need.js +10 -2
  37. package/x/ok/fns/need.js.map +1 -1
  38. package/x/ok/index.d.ts +2 -1
  39. package/x/ok/index.js +2 -1
  40. package/x/ok/index.js.map +1 -1
  41. package/x/ok/test.d.ts +7 -3
  42. package/x/ok/test.js +32 -14
  43. package/x/ok/test.js.map +1 -1
  44. package/s/ok/fns/grab.ts +0 -10
  45. package/x/ok/fns/grab.d.ts +0 -3
  46. package/x/ok/fns/grab.js +0 -7
  47. package/x/ok/fns/grab.js.map +0 -1
package/README.md CHANGED
@@ -338,22 +338,24 @@ rust-inspired pattern for explicit error handling instead of the usual js yolo v
338
338
  ```
339
339
 
340
340
  #### helpers
341
- - `grab(result)` — get the value, or `undefined`
341
+ - `getOk(result)` — get the value, or `undefined`
342
342
  ```ts
343
- grab(ok(123))
343
+ getOk(ok(123))
344
344
  // 123
345
345
 
346
- grab(err("nope"))
346
+ getOk(err("nope"))
347
347
  // undefined
348
348
  ```
349
- - `need(result)` — get the value, or throw
349
+ - there is also `getErr(result)`
350
+ - `needOk(result)` — get the value, or throw
350
351
  ```ts
351
- need(ok(123))
352
+ needOk(ok(123))
352
353
  // 123
353
354
 
354
- need(err("containment lost"))
355
+ needOk(err("containment lost"))
355
356
  // throws Error("containment lost")
356
357
  ```
358
+ - there is also `needErr(result)`
357
359
 
358
360
 
359
361
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e280/stz",
3
- "version": "0.2.29",
3
+ "version": "0.2.31",
4
4
  "description": "everyday ts fns for everything",
5
5
  "license": "MIT",
6
6
  "author": "Chase Moskal <chasemoskal@gmail.com>",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@e280/science": "^0.1.10",
26
- "@types/node": "^25.5.0",
26
+ "@types/node": "^25.6.0",
27
27
  "typescript": "^6.0.2"
28
28
  },
29
29
  "keywords": [
package/s/data/base-x.ts CHANGED
@@ -75,22 +75,26 @@ export class BaseX {
75
75
  // Radix mode fallback
76
76
  let num = 0n
77
77
  const base = BigInt(this.lexicon.characters.length)
78
- let negative = false
79
78
  if (s.startsWith(this.negativePrefix)) {
80
79
  s = s.slice(this.negativePrefix.length)
81
- negative = true
82
80
  }
81
+ const zeroCharacter = this.lexicon.characters[0]
82
+ let leadingZeroBytes = 0
83
+ while (s[leadingZeroBytes] === zeroCharacter)
84
+ leadingZeroBytes++
85
+ s = s.slice(leadingZeroBytes)
83
86
  for (const char of s) {
84
87
  const val = this.lookup[char]
85
88
  if (val === undefined) throw new Error(`Invalid character: ${char}`)
86
89
  num = num * base + BigInt(val)
87
90
  }
88
- const out: number[] = []
91
+ const out = new Uint8Array(leadingZeroBytes + (num === 0n ? 0 : this.countBytes(num)))
92
+ let writeIndex = out.length
89
93
  while (num > 0n) {
90
- out.unshift(Number(num % 256n))
94
+ out[--writeIndex] = Number(num % 256n)
91
95
  num = num / 256n
92
96
  }
93
- return new Uint8Array(out)
97
+ return out
94
98
  }
95
99
 
96
100
  fromBytes(bytes: Uint8Array): string {
@@ -128,11 +132,16 @@ export class BaseX {
128
132
  }
129
133
 
130
134
  // Radix mode fallback
135
+ if (bytes.length === 0) return ""
136
+ const zeroCharacter = this.lexicon.characters[0]
137
+ let leadingZeroBytes = 0
138
+ while (bytes[leadingZeroBytes] === 0)
139
+ leadingZeroBytes++
131
140
  let num = 0n
132
- for (const byte of bytes)
141
+ for (const byte of bytes.slice(leadingZeroBytes))
133
142
  num = (num << 8n) + BigInt(byte)
134
143
 
135
- if (num === 0n) return this.lexicon.characters[0]
144
+ if (num === 0n) return zeroCharacter.repeat(leadingZeroBytes)
136
145
 
137
146
  const base = BigInt(this.lexicon.characters.length)
138
147
  let out = ""
@@ -140,7 +149,7 @@ export class BaseX {
140
149
  out = this.lexicon.characters[Number(num % base)] + out
141
150
  num = num / base
142
151
  }
143
- return out
152
+ return zeroCharacter.repeat(leadingZeroBytes) + out
144
153
  }
145
154
 
146
155
  toInteger(s: string) {
@@ -177,5 +186,13 @@ export class BaseX {
177
186
  random(count = 32) {
178
187
  return this.fromBytes(bytes.random(count))
179
188
  }
180
- }
181
189
 
190
+ private countBytes(num: bigint) {
191
+ let count = 0
192
+ while (num > 0n) {
193
+ count++
194
+ num = num / 256n
195
+ }
196
+ return count
197
+ }
198
+ }
@@ -9,6 +9,7 @@ import bytename from "./bytename/bytename.test.js"
9
9
  import thumbprint from "./bytename/thumbprint.test.js"
10
10
 
11
11
  const sampleBytes = hex.toBytes("9960cd633a46acfe8307d8a400e842da0d930a75fb8188e0f5da264e4b6b4e5b")
12
+ const sampleBytesWithLeadingZeros = hex.toBytes("0000cd633a46acfe8307d8a400e842da0d930a75fb8188e0f5da264e4b6b4e5b")
12
13
 
13
14
  type ByteUtil = {
14
15
  toBytes: (string: string) => Uint8Array
@@ -22,9 +23,10 @@ type NumberUtil = {
22
23
 
23
24
  function testBytes(util: ByteUtil) {
24
25
  return async() => {
25
- const string = util.fromBytes(sampleBytes)
26
- const recreated = util.toBytes(string)
27
- expect(bytes.eq(sampleBytes, recreated)).ok()
26
+ const roundtrip = (original: Uint8Array) => util.toBytes(util.fromBytes(original))
27
+ expect(bytes.eq(sampleBytes, roundtrip(sampleBytes))).ok()
28
+ expect(bytes.eq(sampleBytesWithLeadingZeros, roundtrip(sampleBytesWithLeadingZeros))).ok()
29
+ expect(bytes.eq(new Uint8Array([]), roundtrip(new Uint8Array([])))).ok()
28
30
  }
29
31
  }
30
32
 
@@ -111,4 +113,3 @@ export default Science.suite({
111
113
  }),
112
114
  }),
113
115
  })
114
-
package/s/dig/test.ts CHANGED
@@ -1,12 +1,12 @@
1
1
 
2
2
  import {suite, expect, assert} from "@e280/science"
3
3
  import {dig} from "./dig.js"
4
- import {need} from "../ok/index.js"
4
+ import {needOk} from "../ok/index.js"
5
5
 
6
6
  const check = (t: any, path: (string | number)[]) => ({
7
7
  ok: (value: any) => async() => {
8
8
  const result = dig(t, path)
9
- expect(need(result)).is(value)
9
+ expect(needOk(result)).is(value)
10
10
  },
11
11
  err: (e: any) => async() => {
12
12
  const result = dig(t, path)
@@ -0,0 +1,7 @@
1
+
2
+ export function errorString(error: unknown, fallback = "error"): string {
3
+ if (typeof error === "string") return error
4
+ else if (error instanceof Error) return error.message
5
+ else return fallback
6
+ }
7
+
package/s/index.ts CHANGED
@@ -42,6 +42,7 @@ export * from "./defer.js"
42
42
  export * from "./dispenser.js"
43
43
  export * from "./disposer.js"
44
44
  export * from "./drill.js"
45
+ export * from "./error-string.js"
45
46
  export * from "./escape-regex.js"
46
47
  export * from "./ev.js"
47
48
  export * from "./hat.js"
@@ -0,0 +1,29 @@
1
+
2
+ import {ok} from "./ok.js"
3
+ import {err} from "./err.js"
4
+ import {Result} from "../types/result.js"
5
+
6
+ export function attempt<Value, E = unknown>(fn: () => Value): Result<Value, E> {
7
+ try {
8
+ return ok(fn())
9
+ }
10
+ catch (error) {
11
+ return err(error as E)
12
+ }
13
+ }
14
+
15
+ export async function attemptAsync<Value, E = unknown>(
16
+ input: Promise<Value> | (() => Promise<Value>),
17
+ ): Promise<Result<Value, E>> {
18
+
19
+ try {
20
+ const promise = (typeof input === "function")
21
+ ? input()
22
+ : input
23
+ return ok(await promise)
24
+ }
25
+ catch (error) {
26
+ return err(error as E)
27
+ }
28
+ }
29
+
package/s/ok/fns/err.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  import type {Err} from "../types/err.js"
3
3
 
4
4
  /** failure */
5
- export function err<E = string>(error: E): Err<E> {
5
+ export function err<E>(error: E): Err<E> {
6
6
  return {ok: false, error}
7
7
  }
8
8
 
@@ -0,0 +1,20 @@
1
+
2
+ import type {Result} from "../types/result.js"
3
+
4
+ /** get value or undefined */
5
+ export function getOk<Value>(result: Result<Value, unknown>): Value | undefined {
6
+ return result.ok
7
+ ? result.value
8
+ : undefined
9
+ }
10
+
11
+ /** get error or undefined */
12
+ export function getErr<E = unknown>(result: Result<unknown, E>): E | undefined {
13
+ return result.ok
14
+ ? undefined
15
+ : result.error
16
+ }
17
+
18
+ /** @deprecated renamed to `getOk` */
19
+ export const grab = getOk
20
+
package/s/ok/fns/need.ts CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  import type {Result} from "../types/result.js"
3
3
 
4
- /** get value or throw error */
5
- export function need<Value, E>(result: Result<Value, E>): Value {
4
+ /** return ok value, otherwise throw error */
5
+ export function needOk<Value, E>(result: Result<Value, E>): Value {
6
6
  if (result.ok)
7
7
  return result.value
8
8
 
@@ -18,3 +18,12 @@ export function need<Value, E>(result: Result<Value, E>): Value {
18
18
  throw new Error("unknown")
19
19
  }
20
20
 
21
+ /** return error, otherwise throw error */
22
+ export function needErr<E>(result: Result<unknown, E>): E {
23
+ if (result.ok) throw new Error("didn't get needed error")
24
+ return result.error
25
+ }
26
+
27
+ /** @deprecated renamed to `needOk` */
28
+ export const need = needOk
29
+
package/s/ok/index.ts CHANGED
@@ -1,7 +1,8 @@
1
1
 
2
+ export * from "./fns/attempt.js"
2
3
  export * from "./fns/ok.js"
3
4
  export * from "./fns/err.js"
4
- export * from "./fns/grab.js"
5
+ export * from "./fns/get.js"
5
6
  export * from "./fns/need.js"
6
7
 
7
8
  export * from "./types/ok.js"
package/s/ok/test.ts CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  import {expect, suite, test} from "@e280/science"
3
3
  import {thrown} from "../thrown.js"
4
- import {ok, err, grab, need} from "./index.js"
4
+ import {ok, err, getOk, needOk, attempt, needErr, getErr, attemptAsync} from "./index.js"
5
5
 
6
6
  export default suite({
7
7
  "ok": test(async() => {
@@ -16,31 +16,53 @@ export default suite({
16
16
  expect("value" in err("nope")).is(false)
17
17
  }),
18
18
 
19
- "grab": test(async() => {
20
- expect(grab(ok(123))).is(123)
21
- expect(grab(err("nope"))).is(undefined)
19
+ "getOk": test(async() => {
20
+ expect(getOk(ok(123))).is(123)
21
+ expect(getOk(err("nope"))).is(undefined)
22
22
  }),
23
23
 
24
- "need": test(async() => {
25
- expect(need(ok(123))).is(123)
26
- expect(() => need(err("nope"))).throws()
24
+ "getErr": test(async() => {
25
+ expect(getErr(err("nope"))).is("nope")
26
+ expect(getErr(ok(123))).is(undefined)
27
27
  }),
28
28
 
29
- "need error handling": {
29
+ "needOk": test(async() => {
30
+ expect(needOk(ok(123))).is(123)
31
+ expect(() => needOk(err("nope"))).throws()
32
+ }),
33
+
34
+ "needErr": test(async() => {
35
+ expect(needErr(err("nope"))).is("nope")
36
+ expect(() => needErr(ok(123))).throws()
37
+ }),
38
+
39
+ "attempt": test(async() => {
40
+ expect(needOk(attempt(() => 123))).is(123)
41
+ expect(attempt(() => {throw new Error("rofl")}).ok).is(false)
42
+ expect(needErr<Error>(attempt(() => {throw new Error("rofl")})).message).is("rofl")
43
+ }),
44
+
45
+ "attemptAsync": test(async() => {
46
+ expect(needOk(await attemptAsync(async() => 123))).is(123)
47
+ expect((await attemptAsync(async() => {throw new Error("rofl")})).ok).is(false)
48
+ expect(needErr<Error>(await attemptAsync(async() => {throw new Error("rofl")})).message).is("rofl")
49
+ }),
50
+
51
+ "needOk error handling": {
30
52
  "rethrows errors": test(async() => {
31
53
  const error = new TypeError()
32
- expect(() => need(err(error))).throws(TypeError)
33
- expect(thrown(() => need(err(error)))).is(error)
54
+ expect(() => needOk(err(error))).throws(TypeError)
55
+ expect(thrown(() => needOk(err(error)))).is(error)
34
56
  }),
35
57
 
36
58
  "upgrades strings to errors": test(async() => {
37
- expect(() => need(err("nope"))).throws(Error)
38
- expect(thrown(() => need(err("nope"))).message).is("nope")
59
+ expect(() => needOk(err("nope"))).throws(Error)
60
+ expect(thrown(() => needOk(err("nope"))).message).is("nope")
39
61
  }),
40
62
 
41
63
  "everything else is unknown": test(async() => {
42
- expect(() => need(err({code: 234}))).throws(Error)
43
- expect(thrown(() => need(err({code: 234}))).message).is("unknown")
64
+ expect(() => needOk(err({code: 234}))).throws(Error)
65
+ expect(thrown(() => needOk(err({code: 234}))).message).is("unknown")
44
66
  }),
45
67
  },
46
68
  })
@@ -49,4 +49,5 @@ export declare class BaseX {
49
49
  toInteger(s: string): number;
50
50
  fromInteger(n: number): string;
51
51
  random(count?: number): string;
52
+ private countBytes;
52
53
  }
package/x/data/base-x.js CHANGED
@@ -54,23 +54,27 @@ export class BaseX {
54
54
  // Radix mode fallback
55
55
  let num = 0n;
56
56
  const base = BigInt(this.lexicon.characters.length);
57
- let negative = false;
58
57
  if (s.startsWith(this.negativePrefix)) {
59
58
  s = s.slice(this.negativePrefix.length);
60
- negative = true;
61
59
  }
60
+ const zeroCharacter = this.lexicon.characters[0];
61
+ let leadingZeroBytes = 0;
62
+ while (s[leadingZeroBytes] === zeroCharacter)
63
+ leadingZeroBytes++;
64
+ s = s.slice(leadingZeroBytes);
62
65
  for (const char of s) {
63
66
  const val = this.lookup[char];
64
67
  if (val === undefined)
65
68
  throw new Error(`Invalid character: ${char}`);
66
69
  num = num * base + BigInt(val);
67
70
  }
68
- const out = [];
71
+ const out = new Uint8Array(leadingZeroBytes + (num === 0n ? 0 : this.countBytes(num)));
72
+ let writeIndex = out.length;
69
73
  while (num > 0n) {
70
- out.unshift(Number(num % 256n));
74
+ out[--writeIndex] = Number(num % 256n);
71
75
  num = num / 256n;
72
76
  }
73
- return new Uint8Array(out);
77
+ return out;
74
78
  }
75
79
  fromBytes(bytes) {
76
80
  const bitsPerChar = Math.log2(this.lexicon.characters.length);
@@ -101,18 +105,24 @@ export class BaseX {
101
105
  return out;
102
106
  }
103
107
  // Radix mode fallback
108
+ if (bytes.length === 0)
109
+ return "";
110
+ const zeroCharacter = this.lexicon.characters[0];
111
+ let leadingZeroBytes = 0;
112
+ while (bytes[leadingZeroBytes] === 0)
113
+ leadingZeroBytes++;
104
114
  let num = 0n;
105
- for (const byte of bytes)
115
+ for (const byte of bytes.slice(leadingZeroBytes))
106
116
  num = (num << 8n) + BigInt(byte);
107
117
  if (num === 0n)
108
- return this.lexicon.characters[0];
118
+ return zeroCharacter.repeat(leadingZeroBytes);
109
119
  const base = BigInt(this.lexicon.characters.length);
110
120
  let out = "";
111
121
  while (num > 0n) {
112
122
  out = this.lexicon.characters[Number(num % base)] + out;
113
123
  num = num / base;
114
124
  }
115
- return out;
125
+ return zeroCharacter.repeat(leadingZeroBytes) + out;
116
126
  }
117
127
  toInteger(s) {
118
128
  if (!s)
@@ -149,5 +159,13 @@ export class BaseX {
149
159
  random(count = 32) {
150
160
  return this.fromBytes(bytes.random(count));
151
161
  }
162
+ countBytes(num) {
163
+ let count = 0;
164
+ while (num > 0n) {
165
+ count++;
166
+ num = num / 256n;
167
+ }
168
+ return count;
169
+ }
152
170
  }
153
171
  //# sourceMappingURL=base-x.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-x.js","sourceRoot":"","sources":["../../s/data/base-x.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-x.js","sourceRoot":"","sources":["../../s/data/base-x.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AAgBhC,MAAM,OAAO,KAAK;IAoBE;IAnBnB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC;QACzB,GAAG,EAAE,EAAC,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAC;QAC5D,MAAM,EAAE,EAAC,UAAU,EAAE,sCAAsC,EAAC;QAC5D,MAAM,EAAE,EAAC,UAAU,EAAE,4DAA4D,EAAC;QAClF,MAAM,EAAE,EAAC,UAAU,EAAE,gEAAgE,EAAC;QACtF,SAAS,EAAE;YACV,cAAc,EAAE,GAAG;YACnB,UAAU,EAAE,kEAAkE;SAC9E;QACD,MAAM,EAAE;YACP,UAAU,EAAE,kEAAkE;YAC9E,OAAO,EAAE,EAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAC;SAClC;KACD,CAAC,CAAA;IAEM,MAAM,CAAwB;IAC9B,cAAc,CAAQ;IAE9B,YAAmB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACnD,CAAA;QACD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,GAAG,CAAA;QAEnD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACvB,OAAO,EAAW,CAAA;IACnB,CAAC;IAED,OAAO,CAAC,CAAS;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe;YAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,2CAA2C;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,MAAM,MAAM,GAAa,EAAE,CAAA;YAE3B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS;oBAAE,SAAQ;gBACtD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC7B,IAAI,GAAG,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;gBACpE,SAAS,GAAG,CAAC,SAAS,IAAI,WAAW,CAAC,GAAG,GAAG,CAAA;gBAC5C,QAAQ,IAAI,WAAW,CAAA;gBAEvB,OAAO,QAAQ,IAAI,CAAC,EAAE,CAAC;oBACtB,QAAQ,IAAI,CAAC,CAAA;oBACb,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;gBAC5C,CAAC;YACF,CAAC;YAED,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACxC,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,gBAAgB,GAAG,CAAC,CAAA;QACxB,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,aAAa;YAC3C,gBAAgB,EAAE,CAAA;QACnB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,GAAG,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;YACpE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACtF,IAAI,UAAU,GAAG,GAAG,CAAC,MAAM,CAAA;QAC3B,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;YACjB,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;YACtC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED,SAAS,CAAC,KAAiB;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,2CAA2C;YAC3C,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;gBACnC,QAAQ,IAAI,CAAC,CAAA;gBAEb,OAAO,QAAQ,IAAI,WAAW,EAAE,CAAC;oBAChC,QAAQ,IAAI,WAAW,CAAA;oBACvB,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;oBAChE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBACtC,CAAC;YACF,CAAC;YAED,0BAA0B;YAC1B,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;gBAChF,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACtC,CAAC;YAED,4BAA4B;YAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;oBAClD,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAA;YACvC,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAED,sBAAsB;QACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,gBAAgB,GAAG,CAAC,CAAA;QACxB,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACnC,gBAAgB,EAAE,CAAA;QACnB,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC/C,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjC,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAE7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;YACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;YACvD,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,OAAO,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAA;IACpD,CAAC;IAED,SAAS,CAAC,CAAS;QAClB,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAA;QAChB,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACvC,QAAQ,GAAG,IAAI,CAAA;QAChB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAA;YACtE,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,CAAS;QACpB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACjB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;YACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;YACvD,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACvD,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,EAAE;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC;IAEO,UAAU,CAAC,GAAW;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;YACjB,KAAK,EAAE,CAAA;YACP,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,OAAO,KAAK,CAAA;IACb,CAAC"}
@@ -7,11 +7,13 @@ import { base58, base64, base64url, hex } from "./base-x-codecs.js";
7
7
  import bytename from "./bytename/bytename.test.js";
8
8
  import thumbprint from "./bytename/thumbprint.test.js";
9
9
  const sampleBytes = hex.toBytes("9960cd633a46acfe8307d8a400e842da0d930a75fb8188e0f5da264e4b6b4e5b");
10
+ const sampleBytesWithLeadingZeros = hex.toBytes("0000cd633a46acfe8307d8a400e842da0d930a75fb8188e0f5da264e4b6b4e5b");
10
11
  function testBytes(util) {
11
12
  return async () => {
12
- const string = util.fromBytes(sampleBytes);
13
- const recreated = util.toBytes(string);
14
- expect(bytes.eq(sampleBytes, recreated)).ok();
13
+ const roundtrip = (original) => util.toBytes(util.fromBytes(original));
14
+ expect(bytes.eq(sampleBytes, roundtrip(sampleBytes))).ok();
15
+ expect(bytes.eq(sampleBytesWithLeadingZeros, roundtrip(sampleBytesWithLeadingZeros))).ok();
16
+ expect(bytes.eq(new Uint8Array([]), roundtrip(new Uint8Array([])))).ok();
15
17
  };
16
18
  }
17
19
  function testNumbers(util) {
@@ -1 +1 @@
1
- {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../s/data/data.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../s/data/data.test.ts"],"names":[],"mappings":"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"}
package/x/dig/test.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { suite, expect, assert } from "@e280/science";
2
2
  import { dig } from "./dig.js";
3
- import { need } from "../ok/index.js";
3
+ import { needOk } from "../ok/index.js";
4
4
  const check = (t, path) => ({
5
5
  ok: (value) => async () => {
6
6
  const result = dig(t, path);
7
- expect(need(result)).is(value);
7
+ expect(needOk(result)).is(value);
8
8
  },
9
9
  err: (e) => async () => {
10
10
  const result = dig(t, path);
package/x/dig/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../s/dig/test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AACnD,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAEnC,MAAM,KAAK,GAAG,CAAC,CAAM,EAAE,IAAyB,EAAE,EAAE,CAAC,CAAC;IACrD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,IAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,IAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;CACD,CAAC,CAAA;AAEF,eAAe,KAAK,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,CAAC;IAEP,eAAe,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,SAAS,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC3C,EAAE,CAAC,SAAS,CAAC;IAEf,UAAU,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,IAAI,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SACjC,EAAE,CAAC,IAAI,CAAC;IAEV,kBAAkB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAChD,EAAE,CAAC,CAAC,CAAC;IAEP,iBAAiB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACvC,EAAE,CAAC,GAAG,CAAC;IAET,sBAAsB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,iBAAiB,CAAC;IAExB,2BAA2B,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;SAClD,GAAG,CAAC,iBAAiB,CAAC;IAExB,uBAAuB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC3C,GAAG,CAAC,WAAW,CAAC;IAElB,uBAAuB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC7C,GAAG,CAAC,WAAW,CAAC;IAElB,wBAAwB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACjD,GAAG,CAAC,iBAAiB,CAAC;IAExB,kBAAkB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,EAAE,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC5C,GAAG,CAAC,WAAW,CAAC;CAClB,CAAC,CAAA"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../s/dig/test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AACnD,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAErC,MAAM,KAAK,GAAG,CAAC,CAAM,EAAE,IAAyB,EAAE,EAAE,CAAC,CAAC;IACrD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,IAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,GAAG,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,IAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;CACD,CAAC,CAAA;AAEF,eAAe,KAAK,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC/B,EAAE,CAAC,CAAC,CAAC;IAEP,eAAe,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,SAAS,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC3C,EAAE,CAAC,SAAS,CAAC;IAEf,UAAU,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,IAAI,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SACjC,EAAE,CAAC,IAAI,CAAC;IAEV,kBAAkB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAChD,EAAE,CAAC,CAAC,CAAC;IAEP,iBAAiB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACvC,EAAE,CAAC,GAAG,CAAC;IAET,sBAAsB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,iBAAiB,CAAC;IAExB,2BAA2B,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;SAClD,GAAG,CAAC,iBAAiB,CAAC;IAExB,uBAAuB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC3C,GAAG,CAAC,WAAW,CAAC;IAElB,uBAAuB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC7C,GAAG,CAAC,WAAW,CAAC;IAElB,wBAAwB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACjD,GAAG,CAAC,iBAAiB,CAAC;IAExB,kBAAkB,EAAE,KAAK,CAAC,EAAC,CAAC,EAAE,EAAE,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC5C,GAAG,CAAC,WAAW,CAAC;CAClB,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function errorString(error: unknown, fallback?: string): string;
@@ -0,0 +1,9 @@
1
+ export function errorString(error, fallback = "error") {
2
+ if (typeof error === "string")
3
+ return error;
4
+ else if (error instanceof Error)
5
+ return error.message;
6
+ else
7
+ return fallback;
8
+ }
9
+ //# sourceMappingURL=error-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-string.js","sourceRoot":"","sources":["../s/error-string.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,QAAQ,GAAG,OAAO;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;SACtC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;;QAChD,OAAO,QAAQ,CAAA;AACrB,CAAC"}
package/x/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export * from "./defer.js";
35
35
  export * from "./dispenser.js";
36
36
  export * from "./disposer.js";
37
37
  export * from "./drill.js";
38
+ export * from "./error-string.js";
38
39
  export * from "./escape-regex.js";
39
40
  export * from "./ev.js";
40
41
  export * from "./hat.js";
package/x/index.js CHANGED
@@ -35,6 +35,7 @@ export * from "./defer.js";
35
35
  export * from "./dispenser.js";
36
36
  export * from "./disposer.js";
37
37
  export * from "./drill.js";
38
+ export * from "./error-string.js";
38
39
  export * from "./escape-regex.js";
39
40
  export * from "./ev.js";
40
41
  export * from "./hat.js";
package/x/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAE5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../s/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAE7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAE5B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAE/B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Result } from "../types/result.js";
2
+ export declare function attempt<Value, E = unknown>(fn: () => Value): Result<Value, E>;
3
+ export declare function attemptAsync<Value, E = unknown>(input: Promise<Value> | (() => Promise<Value>)): Promise<Result<Value, E>>;
@@ -0,0 +1,22 @@
1
+ import { ok } from "./ok.js";
2
+ import { err } from "./err.js";
3
+ export function attempt(fn) {
4
+ try {
5
+ return ok(fn());
6
+ }
7
+ catch (error) {
8
+ return err(error);
9
+ }
10
+ }
11
+ export async function attemptAsync(input) {
12
+ try {
13
+ const promise = (typeof input === "function")
14
+ ? input()
15
+ : input;
16
+ return ok(await promise);
17
+ }
18
+ catch (error) {
19
+ return err(error);
20
+ }
21
+ }
22
+ //# sourceMappingURL=attempt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attempt.js","sourceRoot":"","sources":["../../../s/ok/fns/attempt.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAG5B,MAAM,UAAU,OAAO,CAAqB,EAAe;IAC1D,IAAI,CAAC;QACJ,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,KAAU,CAAC,CAAA;IACvB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAA8C;IAG/C,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC;YAC5C,CAAC,CAAC,KAAK,EAAE;YACT,CAAC,CAAC,KAAK,CAAA;QACR,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,KAAU,CAAC,CAAA;IACvB,CAAC;AACF,CAAC"}
package/x/ok/fns/err.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { Err } from "../types/err.js";
2
2
  /** failure */
3
- export declare function err<E = string>(error: E): Err<E>;
3
+ export declare function err<E>(error: E): Err<E>;
@@ -1 +1 @@
1
- {"version":3,"file":"err.js","sourceRoot":"","sources":["../../../s/ok/fns/err.ts"],"names":[],"mappings":"AAGA,cAAc;AACd,MAAM,UAAU,GAAG,CAAa,KAAQ;IACvC,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AAC1B,CAAC"}
1
+ {"version":3,"file":"err.js","sourceRoot":"","sources":["../../../s/ok/fns/err.ts"],"names":[],"mappings":"AAGA,cAAc;AACd,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC9B,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;AAC1B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Result } from "../types/result.js";
2
+ /** get value or undefined */
3
+ export declare function getOk<Value>(result: Result<Value, unknown>): Value | undefined;
4
+ /** get error or undefined */
5
+ export declare function getErr<E = unknown>(result: Result<unknown, E>): E | undefined;
6
+ /** @deprecated renamed to `getOk` */
7
+ export declare const grab: typeof getOk;
@@ -0,0 +1,15 @@
1
+ /** get value or undefined */
2
+ export function getOk(result) {
3
+ return result.ok
4
+ ? result.value
5
+ : undefined;
6
+ }
7
+ /** get error or undefined */
8
+ export function getErr(result) {
9
+ return result.ok
10
+ ? undefined
11
+ : result.error;
12
+ }
13
+ /** @deprecated renamed to `getOk` */
14
+ export const grab = getOk;
15
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../s/ok/fns/get.ts"],"names":[],"mappings":"AAGA,6BAA6B;AAC7B,MAAM,UAAU,KAAK,CAAQ,MAA8B;IAC1D,OAAO,MAAM,CAAC,EAAE;QACf,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,SAAS,CAAA;AACb,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,MAAM,CAAc,MAA0B;IAC7D,OAAO,MAAM,CAAC,EAAE;QACf,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;AAChB,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAA"}
@@ -1,3 +1,7 @@
1
1
  import type { Result } from "../types/result.js";
2
- /** get value or throw error */
3
- export declare function need<Value, E>(result: Result<Value, E>): Value;
2
+ /** return ok value, otherwise throw error */
3
+ export declare function needOk<Value, E>(result: Result<Value, E>): Value;
4
+ /** return error, otherwise throw error */
5
+ export declare function needErr<E>(result: Result<unknown, E>): E;
6
+ /** @deprecated renamed to `needOk` */
7
+ export declare const need: typeof needOk;
package/x/ok/fns/need.js CHANGED
@@ -1,5 +1,5 @@
1
- /** get value or throw error */
2
- export function need(result) {
1
+ /** return ok value, otherwise throw error */
2
+ export function needOk(result) {
3
3
  if (result.ok)
4
4
  return result.value;
5
5
  const { error } = result;
@@ -10,4 +10,12 @@ export function need(result) {
10
10
  else
11
11
  throw new Error("unknown");
12
12
  }
13
+ /** return error, otherwise throw error */
14
+ export function needErr(result) {
15
+ if (result.ok)
16
+ throw new Error("didn't get needed error");
17
+ return result.error;
18
+ }
19
+ /** @deprecated renamed to `needOk` */
20
+ export const need = needOk;
13
21
  //# sourceMappingURL=need.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"need.js","sourceRoot":"","sources":["../../../s/ok/fns/need.ts"],"names":[],"mappings":"AAGA,+BAA+B;AAC/B,MAAM,UAAU,IAAI,CAAW,MAAwB;IACtD,IAAI,MAAM,CAAC,EAAE;QACZ,OAAO,MAAM,CAAC,KAAK,CAAA;IAEpB,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,CAAA;IAEtB,IAAI,KAAK,YAAY,KAAK;QACzB,MAAM,KAAK,CAAA;SAEP,IAAI,OAAO,KAAK,KAAK,QAAQ;QACjC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;;QAGtB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"need.js","sourceRoot":"","sources":["../../../s/ok/fns/need.ts"],"names":[],"mappings":"AAGA,6CAA6C;AAC7C,MAAM,UAAU,MAAM,CAAW,MAAwB;IACxD,IAAI,MAAM,CAAC,EAAE;QACZ,OAAO,MAAM,CAAC,KAAK,CAAA;IAEpB,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,CAAA;IAEtB,IAAI,KAAK,YAAY,KAAK;QACzB,MAAM,KAAK,CAAA;SAEP,IAAI,OAAO,KAAK,KAAK,QAAQ;QACjC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;;QAGtB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAI,MAA0B;IACpD,IAAI,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IACzD,OAAO,MAAM,CAAC,KAAK,CAAA;AACpB,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA"}
package/x/ok/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ export * from "./fns/attempt.js";
1
2
  export * from "./fns/ok.js";
2
3
  export * from "./fns/err.js";
3
- export * from "./fns/grab.js";
4
+ export * from "./fns/get.js";
4
5
  export * from "./fns/need.js";
5
6
  export * from "./types/ok.js";
6
7
  export * from "./types/err.js";
package/x/ok/index.js CHANGED
@@ -1,6 +1,7 @@
1
+ export * from "./fns/attempt.js";
1
2
  export * from "./fns/ok.js";
2
3
  export * from "./fns/err.js";
3
- export * from "./fns/grab.js";
4
+ export * from "./fns/get.js";
4
5
  export * from "./fns/need.js";
5
6
  export * from "./types/ok.js";
6
7
  export * from "./types/err.js";
package/x/ok/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/ok/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAE7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../s/ok/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAE7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA"}
package/x/ok/test.d.ts CHANGED
@@ -1,9 +1,13 @@
1
1
  declare const _default: {
2
2
  ok: import("@e280/science").Test;
3
3
  err: import("@e280/science").Test;
4
- grab: import("@e280/science").Test;
5
- need: import("@e280/science").Test;
6
- "need error handling": {
4
+ getOk: import("@e280/science").Test;
5
+ getErr: import("@e280/science").Test;
6
+ needOk: import("@e280/science").Test;
7
+ needErr: import("@e280/science").Test;
8
+ attempt: import("@e280/science").Test;
9
+ attemptAsync: import("@e280/science").Test;
10
+ "needOk error handling": {
7
11
  "rethrows errors": import("@e280/science").Test;
8
12
  "upgrades strings to errors": import("@e280/science").Test;
9
13
  "everything else is unknown": import("@e280/science").Test;
package/x/ok/test.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { expect, suite, test } from "@e280/science";
2
2
  import { thrown } from "../thrown.js";
3
- import { ok, err, grab, need } from "./index.js";
3
+ import { ok, err, getOk, needOk, attempt, needErr, getErr, attemptAsync } from "./index.js";
4
4
  export default suite({
5
5
  "ok": test(async () => {
6
6
  expect(ok(123).ok).is(true);
@@ -12,27 +12,45 @@ export default suite({
12
12
  expect(err("nope").error).is("nope");
13
13
  expect("value" in err("nope")).is(false);
14
14
  }),
15
- "grab": test(async () => {
16
- expect(grab(ok(123))).is(123);
17
- expect(grab(err("nope"))).is(undefined);
15
+ "getOk": test(async () => {
16
+ expect(getOk(ok(123))).is(123);
17
+ expect(getOk(err("nope"))).is(undefined);
18
18
  }),
19
- "need": test(async () => {
20
- expect(need(ok(123))).is(123);
21
- expect(() => need(err("nope"))).throws();
19
+ "getErr": test(async () => {
20
+ expect(getErr(err("nope"))).is("nope");
21
+ expect(getErr(ok(123))).is(undefined);
22
22
  }),
23
- "need error handling": {
23
+ "needOk": test(async () => {
24
+ expect(needOk(ok(123))).is(123);
25
+ expect(() => needOk(err("nope"))).throws();
26
+ }),
27
+ "needErr": test(async () => {
28
+ expect(needErr(err("nope"))).is("nope");
29
+ expect(() => needErr(ok(123))).throws();
30
+ }),
31
+ "attempt": test(async () => {
32
+ expect(needOk(attempt(() => 123))).is(123);
33
+ expect(attempt(() => { throw new Error("rofl"); }).ok).is(false);
34
+ expect(needErr(attempt(() => { throw new Error("rofl"); })).message).is("rofl");
35
+ }),
36
+ "attemptAsync": test(async () => {
37
+ expect(needOk(await attemptAsync(async () => 123))).is(123);
38
+ expect((await attemptAsync(async () => { throw new Error("rofl"); })).ok).is(false);
39
+ expect(needErr(await attemptAsync(async () => { throw new Error("rofl"); })).message).is("rofl");
40
+ }),
41
+ "needOk error handling": {
24
42
  "rethrows errors": test(async () => {
25
43
  const error = new TypeError();
26
- expect(() => need(err(error))).throws(TypeError);
27
- expect(thrown(() => need(err(error)))).is(error);
44
+ expect(() => needOk(err(error))).throws(TypeError);
45
+ expect(thrown(() => needOk(err(error)))).is(error);
28
46
  }),
29
47
  "upgrades strings to errors": test(async () => {
30
- expect(() => need(err("nope"))).throws(Error);
31
- expect(thrown(() => need(err("nope"))).message).is("nope");
48
+ expect(() => needOk(err("nope"))).throws(Error);
49
+ expect(thrown(() => needOk(err("nope"))).message).is("nope");
32
50
  }),
33
51
  "everything else is unknown": test(async () => {
34
- expect(() => need(err({ code: 234 }))).throws(Error);
35
- expect(thrown(() => need(err({ code: 234 }))).message).is("unknown");
52
+ expect(() => needOk(err({ code: 234 }))).throws(Error);
53
+ expect(thrown(() => needOk(err({ code: 234 }))).message).is("unknown");
36
54
  }),
37
55
  },
38
56
  });
package/x/ok/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../s/ok/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../s/ok/test.ts"],"names":[],"mappings":"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"}
package/s/ok/fns/grab.ts DELETED
@@ -1,10 +0,0 @@
1
-
2
- import type {Result} from "../types/result.js"
3
-
4
- /** get value or undefined */
5
- export function grab<Value>(result: Result<Value, unknown>): Value | undefined {
6
- return result.ok
7
- ? result.value
8
- : undefined
9
- }
10
-
@@ -1,3 +0,0 @@
1
- import type { Result } from "../types/result.js";
2
- /** get value or undefined */
3
- export declare function grab<Value>(result: Result<Value, unknown>): Value | undefined;
package/x/ok/fns/grab.js DELETED
@@ -1,7 +0,0 @@
1
- /** get value or undefined */
2
- export function grab(result) {
3
- return result.ok
4
- ? result.value
5
- : undefined;
6
- }
7
- //# sourceMappingURL=grab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grab.js","sourceRoot":"","sources":["../../../s/ok/fns/grab.ts"],"names":[],"mappings":"AAGA,6BAA6B;AAC7B,MAAM,UAAU,IAAI,CAAQ,MAA8B;IACzD,OAAO,MAAM,CAAC,EAAE;QACf,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,SAAS,CAAA;AACb,CAAC"}