@guillaume-docquier/tools-ts 4.2.0 → 5.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/dist/Result.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Rethrow } from "./errors/Rethrow.js";
2
+ import { TypeGuard } from "./TypeGuard.js";
2
3
  /**
3
4
  * Utility functions to work with Results.
4
5
  * @example
@@ -36,7 +37,7 @@ export const Result = {
36
37
  tryCatch,
37
38
  };
38
39
  function tryCatch(op) {
39
- if (op instanceof Promise) {
40
+ if (TypeGuard.isPromiseLike(op)) {
40
41
  return tryCatchPromise(op);
41
42
  }
42
43
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"Result.js","sourceRoot":"","sources":["../src/Result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAkB7C;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;OAEG;IACH,OAAO,EAAE,CAAS,KAAa,EAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAEjF;;OAEG;IACH,SAAS,EAAE,CAAS,YAAqC,EAAmC,EAAE;QAC5F,OAAO,YAAY,CAAC,IAAI,KAAK,SAAS,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,OAAO,EAAE,CAAS,KAAa,EAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAEjF;;OAEG;IACH,SAAS,EAAE,CAAS,YAAqC,EAAmC,EAAE;QAC5F,OAAO,YAAY,CAAC,IAAI,KAAK,SAAS,CAAA;IACxC,CAAC;IAED,+GAA+G;IAC/G,QAAQ;CACT,CAAA;AA6BD,SAAS,QAAQ,CAAI,EAAuC;IAC1D,IAAI,EAAE,YAAY,OAAO,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;QAEnB,iBAAiB;QACjB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,gBAAgB;QAChB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAI,OAAmB;IAC7C,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAClD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"Result.js","sourceRoot":"","sources":["../src/Result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAkB1C;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;OAEG;IACH,OAAO,EAAE,CAAS,KAAa,EAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAEjF;;OAEG;IACH,SAAS,EAAE,CAAS,YAAqC,EAAmC,EAAE;QAC5F,OAAO,YAAY,CAAC,IAAI,KAAK,SAAS,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,OAAO,EAAE,CAAS,KAAa,EAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAEjF;;OAEG;IACH,SAAS,EAAE,CAAS,YAAqC,EAAmC,EAAE;QAC5F,OAAO,YAAY,CAAC,IAAI,KAAK,SAAS,CAAA;IACxC,CAAC;IAED,+GAA+G;IAC/G,QAAQ;CACT,CAAA;AA6BD,SAAS,QAAQ,CAAI,EAAuC;IAC1D,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;QAEnB,iBAAiB;QACjB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,gBAAgB;QAChB,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAI,OAAmB;IAC7C,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAClD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/dist/Theory.d.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  declare class AClassIsTechnicallyRecordLike {
2
2
  readonly foo = "bar";
3
3
  }
4
+ declare class ClassWithThenMethod {
5
+ then(): Promise<string>;
6
+ }
4
7
  export declare const Theory: {
5
- readonly NotAString: readonly [-1, 0, 1, -1.5, 1.5, {}, readonly [], null, undefined, true, false];
6
8
  readonly String: readonly ["-1", "0", "1", "-1.5", "1.5", "{}", "[]", "null", "undefined", "true", "false", "", "string", "blah blah blah"];
9
+ readonly NotAString: readonly [-1, 0, 1, -1.5, 1.5, {}, readonly [], null, undefined, true, false];
7
10
  readonly Record: readonly [{}, {
8
11
  readonly x: {};
9
12
  }, {
@@ -20,12 +23,26 @@ export declare const Theory: {
20
23
  array: unknown[];
21
24
  }[];
22
25
  readonly NotAnArray: readonly [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", {}, null, undefined, true, false];
23
- readonly NotANumber: readonly ["-1", "0", "1", "-1.5", "1.5", "record", "", "string", "{}", "[]", {}, readonly [], null, undefined, true, false];
24
26
  readonly Number: readonly [number, -2.3456789, -1.5, -1, 0, 1, 1.5, 2.3456789, number];
25
- readonly NotAnInteger: readonly ["-1", "0", "1", -1.5, 1.5, "record", "", "string", "{}", "[]", {}, readonly [], null, undefined, true, false];
26
- readonly Integer: readonly [-999, -1, 0, 1, 999];
27
- readonly NotABoolean: readonly [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", {}, readonly [], null, undefined, "true", "false"];
27
+ readonly NotANumber: readonly ["-1", "0", "1", "-1.5", "1.5", "record", "", "string", "{}", "[]", {}, readonly [], null, undefined, true, false];
28
28
  readonly Boolean: readonly [true, false];
29
+ readonly NotABoolean: readonly [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", {}, readonly [], null, undefined, "true", "false"];
29
30
  readonly Class: readonly [AClassIsTechnicallyRecordLike];
31
+ readonly PromiseLike: readonly [readonly [Promise<string>, {
32
+ readonly then: () => Promise<string>;
33
+ }, ClassWithThenMethod]];
34
+ readonly NotPromiseLike: readonly [undefined, null, true, false, 0, 1, "", "then", {}, {
35
+ readonly then: undefined;
36
+ }, {
37
+ readonly then: null;
38
+ }, {
39
+ readonly then: "not a function";
40
+ }, readonly [], readonly [() => Promise<string>], () => Promise<string>];
41
+ readonly Function: readonly [() => void, () => void, () => Promise<void>, {
42
+ new (): {};
43
+ }];
44
+ readonly NotAFunction: readonly [undefined, null, true, false, 0, 1, "", "function", {}, {
45
+ readonly call: () => void;
46
+ }, readonly [], readonly [() => void]];
30
47
  };
31
48
  export {};
package/dist/Theory.js CHANGED
@@ -3,19 +3,43 @@ const toArrayEntry = (array) => ({ array });
3
3
  class AClassIsTechnicallyRecordLike {
4
4
  foo = "bar";
5
5
  }
6
+ class ClassWithThenMethod {
7
+ async then() {
8
+ return "value";
9
+ }
10
+ }
6
11
  export const Theory = {
7
- NotAString: [-1, 0, 1, -1.5, 1.5, {}, [], null, undefined, true, false],
8
12
  String: ["-1", "0", "1", "-1.5", "1.5", "{}", "[]", "null", "undefined", "true", "false", "", "string", "blah blah blah"],
13
+ NotAString: [-1, 0, 1, -1.5, 1.5, {}, [], null, undefined, true, false],
9
14
  Record: [{}, { x: {} }, { a: null }, { null: null }, { undefined }, { yo: "hi" }],
10
15
  NotARecord: [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", [], null, undefined, true, false],
11
16
  Array: [[], [""], [0], [null], [undefined], [[]], [{}], [false], [1, "string", true]].map(toArrayEntry),
12
17
  NotAnArray: [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", {}, null, undefined, true, false],
13
- NotANumber: ["-1", "0", "1", "-1.5", "1.5", "record", "", "string", "{}", "[]", {}, [], null, undefined, true, false],
14
18
  Number: [Number.MIN_VALUE, -2.3456789, -1.5, -1, 0, 1, 1.5, 2.3456789, Number.MAX_VALUE],
15
- NotAnInteger: ["-1", "0", "1", -1.5, 1.5, "record", "", "string", "{}", "[]", {}, [], null, undefined, true, false],
16
- Integer: [-999, -1, 0, 1, 999],
17
- NotABoolean: [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", {}, [], null, undefined, "true", "false"],
19
+ NotANumber: ["-1", "0", "1", "-1.5", "1.5", "record", "", "string", "{}", "[]", {}, [], null, undefined, true, false],
18
20
  Boolean: [true, false],
21
+ NotABoolean: [-1, 0, 1, -1.5, 1.5, "record", "", "string", "{}", "[]", {}, [], null, undefined, "true", "false"],
19
22
  Class: [new AClassIsTechnicallyRecordLike()],
23
+ PromiseLike: [[Promise.resolve("value"), { then: () => Promise.resolve("value") }, new ClassWithThenMethod()]],
24
+ NotPromiseLike: [
25
+ undefined,
26
+ null,
27
+ true,
28
+ false,
29
+ 0,
30
+ 1,
31
+ "",
32
+ "then",
33
+ {},
34
+ { then: undefined },
35
+ { then: null },
36
+ { then: "not a function" },
37
+ [],
38
+ [() => Promise.resolve("value")],
39
+ () => Promise.resolve("value"),
40
+ ],
41
+ Function: [function functionDeclaration() { }, () => { }, async () => { }, class SomeClass {
42
+ }],
43
+ NotAFunction: [undefined, null, true, false, 0, 1, "", "function", {}, { call: () => { } }, [], [() => { }]],
20
44
  };
21
45
  //# sourceMappingURL=Theory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Theory.js","sourceRoot":"","sources":["../src/Theory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Theory.js","sourceRoot":"","sources":["../src/Theory.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type { EnumType } from "./utility-types.js";
2
2
  export declare const TypeGuard: {
3
+ readonly isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
4
+ readonly isPromiseLike: (value: unknown) => value is PromiseLike<unknown>;
3
5
  readonly isBoolean: (value: unknown) => value is boolean;
4
6
  readonly isString: (value: unknown) => value is string;
5
7
  readonly isNumber: (value: unknown) => value is number;
6
- readonly isInteger: (value: unknown) => value is number;
7
8
  readonly isArray: (value: unknown) => value is unknown[];
8
9
  readonly isRecord: (value: unknown) => value is Record<string | number | symbol, unknown>;
9
10
  readonly isEnumMember: <TEnum extends EnumType>(theEnum: TEnum, maybeEnumValue: unknown) => maybeEnumValue is TEnum[keyof TEnum];
package/dist/TypeGuard.js CHANGED
@@ -1,8 +1,9 @@
1
1
  export const TypeGuard = {
2
+ isFunction: (value) => typeof value === "function",
3
+ isPromiseLike: (value) => TypeGuard.isRecord(value) && TypeGuard.isFunction(value.then),
2
4
  isBoolean: (value) => typeof value === "boolean",
3
5
  isString: (value) => typeof value === "string",
4
6
  isNumber: (value) => typeof value === "number",
5
- isInteger: (value) => TypeGuard.isNumber(value) && Number.isInteger(value),
6
7
  isArray: (value) => Array.isArray(value),
7
8
  isRecord: (value) => isObject(value) && value !== null && !TypeGuard.isArray(value),
8
9
  isEnumMember: (theEnum, maybeEnumValue) => Object.values(theEnum).some((enumValue) => enumValue === maybeEnumValue),
@@ -1 +1 @@
1
- {"version":3,"file":"TypeGuard.js","sourceRoot":"","sources":["../src/TypeGuard.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,CAAC,KAAc,EAAoB,EAAE,CAAC,OAAO,KAAK,KAAK,SAAS;IAC3E,QAAQ,EAAE,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ;IACxE,QAAQ,EAAE,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ;IACxE,SAAS,EAAE,CAAC,KAAc,EAAmB,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;IACpG,OAAO,EAAE,CAAC,KAAc,EAAsB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAc,EAAsD,EAAE,CAC/E,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;IAChE,YAAY,EAAE,CAAyB,OAAc,EAAE,cAAuB,EAAwC,EAAE,CACtH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,cAAc,CAAC;CAClE,CAAA;AAEV,iHAAiH;AACjH,6DAA6D;AAC7D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"TypeGuard.js","sourceRoot":"","sources":["../src/TypeGuard.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU,EAAE,CAAC,KAAc,EAA4C,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU;IACrG,aAAa,EAAE,CAAC,KAAc,EAAiC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;IAC/H,SAAS,EAAE,CAAC,KAAc,EAAoB,EAAE,CAAC,OAAO,KAAK,KAAK,SAAS;IAC3E,QAAQ,EAAE,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ;IACxE,QAAQ,EAAE,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ;IACxE,OAAO,EAAE,CAAC,KAAc,EAAsB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAc,EAAsD,EAAE,CAC/E,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;IAChE,YAAY,EAAE,CAAyB,OAAc,EAAE,cAAuB,EAAwC,EAAE,CACtH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,cAAc,CAAC;CAClE,CAAA;AAEV,iHAAiH;AACjH,6DAA6D;AAC7D,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guillaume-docquier/tools-ts",
3
- "version": "4.2.0",
3
+ "version": "5.0.1",
4
4
  "description": "My personal collection of typescript tools",
5
5
  "homepage": "https://github.com/Guillaume-Docquier/tools-ts",
6
6
  "repository": {
@@ -70,7 +70,7 @@
70
70
  "typescript-eslint": "^8.59.4",
71
71
  "vitest": "^4.1.7"
72
72
  },
73
- "packageManager": "pnpm@11.3.0+sha512.2c403d6594527287672b1f7056343a1f7c3634036a67ffabfcc2b3d7595d843768f8787148d1b57cf7956c90606bbd192857c363af19e96d2d0ec9ec5741d215",
73
+ "packageManager": "pnpm@11.5.2+sha512.71c631e382066efc25625d5cf029075de07b61b37f6e27350fbd84b1bda5864c8c1967adc280776b45c30a715c0359a3be08fef42d5bb09e2b99029979692916",
74
74
  "publishConfig": {
75
75
  "access": "public",
76
76
  "provenance": true