@qlever-llc/result 0.7.0 → 0.8.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/esm/_dnt.polyfills.d.ts +99 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -1
- package/esm/_dnt.polyfills.js +127 -1
- package/esm/error.d.ts.map +1 -1
- package/esm/error.js +1 -1
- package/esm/mod.d.ts +3 -3
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -1
- package/esm/result.d.ts +20 -0
- package/esm/result.d.ts.map +1 -1
- package/esm/result.js +29 -0
- package/package.json +2 -1
- package/script/_dnt.polyfills.d.ts +99 -0
- package/script/_dnt.polyfills.d.ts.map +1 -1
- package/script/_dnt.polyfills.js +128 -0
- package/script/error.d.ts.map +1 -1
- package/script/error.js +1 -1
- package/script/mod.d.ts +3 -3
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +2 -2
- package/script/result.d.ts +20 -0
- package/script/result.d.ts.map +1 -1
- package/script/result.js +29 -0
package/README.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# @qlever-llc/result
|
|
2
2
|
|
|
3
|
-
Class-based `Result<T, E>` and `AsyncResult<T, E>` types for TypeScript,
|
|
3
|
+
Class-based `Result<T, E>` and `AsyncResult<T, E>` types for TypeScript,
|
|
4
|
+
inspired by Rust.
|
|
4
5
|
|
|
5
|
-
Provides explicit error handling with method chaining and the `take()` pattern
|
|
6
|
+
Provides explicit error handling with method chaining and the `take()` pattern
|
|
7
|
+
for early returns, without relying on exceptions.
|
|
6
8
|
|
|
7
9
|
```typescript
|
|
8
|
-
import {
|
|
10
|
+
import { AsyncResult, Result } from "@qlever-llc/result";
|
|
9
11
|
|
|
10
12
|
const user = await fetchUser(id).take();
|
|
11
13
|
if (Result.isErr(user)) return user;
|
|
@@ -14,7 +16,8 @@ if (Result.isErr(user)) return user;
|
|
|
14
16
|
Key surface area:
|
|
15
17
|
|
|
16
18
|
- `Result.ok(value)` / `Result.err(error)` — construction
|
|
17
|
-
- `Result.try(() => ...)` / `AsyncResult.try(async () => ...)` — wrap throwing
|
|
19
|
+
- `Result.try(() => ...)` / `AsyncResult.try(async () => ...)` — wrap throwing
|
|
20
|
+
code
|
|
18
21
|
- `.map()`, `.mapErr()`, `.andThen()` — transforms
|
|
19
22
|
- `.take()` — early return pattern (Rust's `?` operator equivalent)
|
|
20
23
|
- `.match({ ok, err })` — pattern matching
|
package/esm/_dnt.polyfills.d.ts
CHANGED
|
@@ -1,3 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
3
|
+
* but instead of using npm to install additional dependencies,
|
|
4
|
+
* this approach manually consolidates cjs/mjs/d.ts into a single file.
|
|
5
|
+
*
|
|
6
|
+
* Note that this code might be imported multiple times
|
|
7
|
+
* (for example, both dnt.test.polyfills.ts and dnt.polyfills.ts contain this code;
|
|
8
|
+
* or Node.js might dynamically clear the cache and then force a require).
|
|
9
|
+
* Therefore, it's important to avoid redundant writes to global objects.
|
|
10
|
+
* Additionally, consider that commonjs is used alongside esm,
|
|
11
|
+
* so the two ponyfill functions are stored independently in two separate global objects.
|
|
12
|
+
*/
|
|
13
|
+
import { createRequire } from "node:module";
|
|
14
|
+
import { type URL } from "node:url";
|
|
15
|
+
declare global {
|
|
16
|
+
interface ImportMeta {
|
|
17
|
+
/** A string representation of the fully qualified module URL. When the
|
|
18
|
+
* module is loaded locally, the value will be a file URL (e.g.
|
|
19
|
+
* `file:///path/module.ts`).
|
|
20
|
+
*
|
|
21
|
+
* You can also parse the string as a URL to determine more information about
|
|
22
|
+
* how the current module was loaded. For example to determine if a module was
|
|
23
|
+
* local or not:
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const url = new URL(import.meta.url);
|
|
27
|
+
* if (url.protocol === "file:") {
|
|
28
|
+
* console.log("this module was loaded locally");
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
url: string;
|
|
33
|
+
/**
|
|
34
|
+
* A function that returns resolved specifier as if it would be imported
|
|
35
|
+
* using `import(specifier)`.
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* console.log(import.meta.resolve("./foo.js"));
|
|
39
|
+
* // file:///dev/foo.js
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @param specifier The module specifier to resolve relative to `parent`.
|
|
43
|
+
* @param parent The absolute parent module URL to resolve from.
|
|
44
|
+
* @returns The absolute (`file:`) URL string for the resolved module.
|
|
45
|
+
*/
|
|
46
|
+
resolve(specifier: string, parent?: string | URL | undefined): string;
|
|
47
|
+
/** A flag that indicates if the current module is the main module that was
|
|
48
|
+
* called when starting the program under Deno.
|
|
49
|
+
*
|
|
50
|
+
* ```ts
|
|
51
|
+
* if (import.meta.main) {
|
|
52
|
+
* // this was loaded as the main module, maybe do some bootstrapping
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
main: boolean;
|
|
57
|
+
/** The absolute path of the current module.
|
|
58
|
+
*
|
|
59
|
+
* This property is only provided for local modules (ie. using `file://` URLs).
|
|
60
|
+
*
|
|
61
|
+
* Example:
|
|
62
|
+
* ```
|
|
63
|
+
* // Unix
|
|
64
|
+
* console.log(import.meta.filename); // /home/alice/my_module.ts
|
|
65
|
+
*
|
|
66
|
+
* // Windows
|
|
67
|
+
* console.log(import.meta.filename); // C:\alice\my_module.ts
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
filename: string;
|
|
71
|
+
/** The absolute path of the directory containing the current module.
|
|
72
|
+
*
|
|
73
|
+
* This property is only provided for local modules (ie. using `file://` URLs).
|
|
74
|
+
*
|
|
75
|
+
* * Example:
|
|
76
|
+
* ```
|
|
77
|
+
* // Unix
|
|
78
|
+
* console.log(import.meta.dirname); // /home/alice
|
|
79
|
+
*
|
|
80
|
+
* // Windows
|
|
81
|
+
* console.log(import.meta.dirname); // C:\alice
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
dirname: string;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
type NodeRequest = ReturnType<typeof createRequire>;
|
|
88
|
+
type NodeModule = NonNullable<NodeRequest["main"]>;
|
|
89
|
+
interface ImportMetaPonyfillCommonjs {
|
|
90
|
+
(require: NodeRequest, module: NodeModule): ImportMeta;
|
|
91
|
+
}
|
|
92
|
+
interface ImportMetaPonyfillEsmodule {
|
|
93
|
+
(importMeta: ImportMeta): ImportMeta;
|
|
94
|
+
}
|
|
95
|
+
interface ImportMetaPonyfill extends ImportMetaPonyfillCommonjs, ImportMetaPonyfillEsmodule {
|
|
96
|
+
}
|
|
97
|
+
export declare let import_meta_ponyfill_commonjs: ImportMetaPonyfillCommonjs;
|
|
98
|
+
export declare let import_meta_ponyfill_esmodule: ImportMetaPonyfillEsmodule;
|
|
99
|
+
export declare let import_meta_ponyfill: ImportMetaPonyfill;
|
|
1
100
|
declare global {
|
|
2
101
|
interface Error {
|
|
3
102
|
cause?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF;AAED,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB;;;;;;;;;;;;;;WAcG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;QACtE;;;;;;;;WAQG;QACH,IAAI,EAAE,OAAO,CAAC;QAEd;;;;;;;;;;;;WAYG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;;;;;;;;;;WAYG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB;CACF;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,UAAU,0BAA0B;IAClC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACxD;AACD,UAAU,0BAA0B;IAClC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AACD,UAAU,kBACR,SAAQ,0BAA0B,EAAE,0BAA0B;CAC/D;AAiBD,eAAO,IAAI,6BAA6B,EA2BnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,6BAA6B,EA4DnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,oBAAoB,EAoB1B,kBAAkB,CAAC;AACxB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF;AAED,OAAO,EAAE,CAAC"}
|
package/esm/_dnt.polyfills.js
CHANGED
|
@@ -1 +1,127 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
3
|
+
* but instead of using npm to install additional dependencies,
|
|
4
|
+
* this approach manually consolidates cjs/mjs/d.ts into a single file.
|
|
5
|
+
*
|
|
6
|
+
* Note that this code might be imported multiple times
|
|
7
|
+
* (for example, both dnt.test.polyfills.ts and dnt.polyfills.ts contain this code;
|
|
8
|
+
* or Node.js might dynamically clear the cache and then force a require).
|
|
9
|
+
* Therefore, it's important to avoid redundant writes to global objects.
|
|
10
|
+
* Additionally, consider that commonjs is used alongside esm,
|
|
11
|
+
* so the two ponyfill functions are stored independently in two separate global objects.
|
|
12
|
+
*/
|
|
13
|
+
//@ts-ignore
|
|
14
|
+
import { createRequire } from "node:module";
|
|
15
|
+
//@ts-ignore
|
|
16
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
17
|
+
//@ts-ignore
|
|
18
|
+
import { dirname } from "node:path";
|
|
19
|
+
const defineGlobalPonyfill = (symbolFor, fn) => {
|
|
20
|
+
if (!Reflect.has(globalThis, Symbol.for(symbolFor))) {
|
|
21
|
+
Object.defineProperty(globalThis, Symbol.for(symbolFor), {
|
|
22
|
+
configurable: true,
|
|
23
|
+
get() {
|
|
24
|
+
return fn;
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export let import_meta_ponyfill_commonjs = (Reflect.get(globalThis, Symbol.for("import-meta-ponyfill-commonjs")) ??
|
|
30
|
+
(() => {
|
|
31
|
+
const moduleImportMetaWM = new WeakMap();
|
|
32
|
+
return (require, module) => {
|
|
33
|
+
let importMetaCache = moduleImportMetaWM.get(module);
|
|
34
|
+
if (importMetaCache == null) {
|
|
35
|
+
const importMeta = Object.assign(Object.create(null), {
|
|
36
|
+
url: pathToFileURL(module.filename).href,
|
|
37
|
+
main: require.main == module,
|
|
38
|
+
resolve: (specifier, parentURL = importMeta.url) => {
|
|
39
|
+
return pathToFileURL((importMeta.url === parentURL
|
|
40
|
+
? require
|
|
41
|
+
: createRequire(parentURL))
|
|
42
|
+
.resolve(specifier)).href;
|
|
43
|
+
},
|
|
44
|
+
filename: module.filename,
|
|
45
|
+
dirname: module.path,
|
|
46
|
+
});
|
|
47
|
+
moduleImportMetaWM.set(module, importMeta);
|
|
48
|
+
importMetaCache = importMeta;
|
|
49
|
+
}
|
|
50
|
+
return importMetaCache;
|
|
51
|
+
};
|
|
52
|
+
})());
|
|
53
|
+
defineGlobalPonyfill("import-meta-ponyfill-commonjs", import_meta_ponyfill_commonjs);
|
|
54
|
+
export let import_meta_ponyfill_esmodule = (Reflect.get(globalThis, Symbol.for("import-meta-ponyfill-esmodule")) ??
|
|
55
|
+
((importMeta) => {
|
|
56
|
+
const resolveFunStr = String(importMeta.resolve);
|
|
57
|
+
const shimWs = new WeakSet();
|
|
58
|
+
//@ts-ignore
|
|
59
|
+
const mainUrl = ("file:///" + process.argv[1].replace(/\\/g, "/"))
|
|
60
|
+
.replace(/\/{3,}/, "///");
|
|
61
|
+
const commonShim = (importMeta) => {
|
|
62
|
+
if (typeof importMeta.main !== "boolean") {
|
|
63
|
+
importMeta.main = importMeta.url === mainUrl;
|
|
64
|
+
}
|
|
65
|
+
if (typeof importMeta.filename !== "string") {
|
|
66
|
+
importMeta.filename = fileURLToPath(importMeta.url);
|
|
67
|
+
importMeta.dirname = dirname(importMeta.filename);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
if (
|
|
71
|
+
// v16.2.0+, v14.18.0+: Add support for WHATWG URL object to parentURL parameter.
|
|
72
|
+
resolveFunStr === "undefined" ||
|
|
73
|
+
// v20.0.0+, v18.19.0+"" This API now returns a string synchronously instead of a Promise.
|
|
74
|
+
resolveFunStr.startsWith("async")
|
|
75
|
+
// enable by --experimental-import-meta-resolve flag
|
|
76
|
+
) {
|
|
77
|
+
import_meta_ponyfill_esmodule = (importMeta) => {
|
|
78
|
+
if (!shimWs.has(importMeta)) {
|
|
79
|
+
shimWs.add(importMeta);
|
|
80
|
+
const importMetaUrlRequire = {
|
|
81
|
+
url: importMeta.url,
|
|
82
|
+
require: createRequire(importMeta.url),
|
|
83
|
+
};
|
|
84
|
+
importMeta.resolve = function resolve(specifier, parentURL = importMeta.url) {
|
|
85
|
+
return pathToFileURL((importMetaUrlRequire.url === parentURL
|
|
86
|
+
? importMetaUrlRequire.require
|
|
87
|
+
: createRequire(parentURL)).resolve(specifier)).href;
|
|
88
|
+
};
|
|
89
|
+
commonShim(importMeta);
|
|
90
|
+
}
|
|
91
|
+
return importMeta;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
/// native support
|
|
96
|
+
import_meta_ponyfill_esmodule = (importMeta) => {
|
|
97
|
+
if (!shimWs.has(importMeta)) {
|
|
98
|
+
shimWs.add(importMeta);
|
|
99
|
+
commonShim(importMeta);
|
|
100
|
+
}
|
|
101
|
+
return importMeta;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return import_meta_ponyfill_esmodule(importMeta);
|
|
105
|
+
}));
|
|
106
|
+
defineGlobalPonyfill("import-meta-ponyfill-esmodule", import_meta_ponyfill_esmodule);
|
|
107
|
+
export let import_meta_ponyfill = ((...args) => {
|
|
108
|
+
const _MODULE = (() => {
|
|
109
|
+
if (typeof require === "function" && typeof module === "object") {
|
|
110
|
+
return "commonjs";
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// eval("typeof import.meta");
|
|
114
|
+
return "esmodule";
|
|
115
|
+
}
|
|
116
|
+
})();
|
|
117
|
+
if (_MODULE === "commonjs") {
|
|
118
|
+
//@ts-ignore
|
|
119
|
+
import_meta_ponyfill = (r, m) => import_meta_ponyfill_commonjs(r, m);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
//@ts-ignore
|
|
123
|
+
import_meta_ponyfill = (im) => import_meta_ponyfill_esmodule(im);
|
|
124
|
+
}
|
|
125
|
+
//@ts-ignore
|
|
126
|
+
return import_meta_ponyfill(...args);
|
|
127
|
+
});
|
package/esm/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IAKZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,SAAS,CAC7B,KAAK,SAAS,eAAe,GAAG,eAAe,CAC/C,SAAQ,KAAK;;IACb;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAE7D,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,gDAAgD;IAChD,kBAA2B,IAAI,EAAE,MAAM,CAAC;gBAQ5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAcvD;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOpD;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrC;;;;;OAKG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAI1C;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,IAAI,eAAe;IAW7C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,IAAI,KAAK;IAEhC;;;;OAIG;IACH,MAAM,IAAI,MAAM;CAGjB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,SAAS,CAAC,mBAAmB,CAAC;IACjE,SAAkB,IAAI,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IAKZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,SAAS,CAC7B,KAAK,SAAS,eAAe,GAAG,eAAe,CAC/C,SAAQ,KAAK;;IACb;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAE7D,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,gDAAgD;IAChD,kBAA2B,IAAI,EAAE,MAAM,CAAC;gBAQ5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAcvD;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOpD;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrC;;;;;OAKG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAI1C;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,IAAI,eAAe;IAW7C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,IAAI,KAAK;IAEhC;;;;OAIG;IACH,MAAM,IAAI,MAAM;CAGjB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,SAAS,CAAC,mBAAmB,CAAC;IACjE,SAAkB,IAAI,EAAG,iBAAiB,CAAU;gBAExC,OAAO,CAAC,EAAE,gBAAgB;IAiBtC;;;;OAIG;IACM,cAAc,IAAI,mBAAmB;CAG/C"}
|
package/esm/error.js
CHANGED
|
@@ -49,7 +49,7 @@ export class BaseError extends Error {
|
|
|
49
49
|
this.id = id ?? ulid();
|
|
50
50
|
__classPrivateFieldSet(this, _BaseError_context, context ?? {}, "f");
|
|
51
51
|
__classPrivateFieldSet(this, _BaseError_traceId, traceId ?? BaseError.traceIdGetter?.(), "f");
|
|
52
|
-
Object.setPrototypeOf(this,
|
|
52
|
+
Object.setPrototypeOf(this, globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).prototype);
|
|
53
53
|
if (Error.captureStackTrace) {
|
|
54
54
|
Error.captureStackTrace(this, this.constructor);
|
|
55
55
|
}
|
package/esm/mod.d.ts
CHANGED
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
*/
|
|
52
52
|
import "./_dnt.polyfills.js";
|
|
53
53
|
import { Result as ResultClass } from "./result.js";
|
|
54
|
-
export {
|
|
55
|
-
export type {
|
|
54
|
+
export { AsyncResult, Result } from "./result.js";
|
|
55
|
+
export type { ErrValue, Infer, InferErr, MaybeAsync, OkValue, } from "./result.js";
|
|
56
56
|
export declare const ok: typeof ResultClass.ok;
|
|
57
57
|
export declare const err: typeof ResultClass.err;
|
|
58
58
|
export declare const isOk: typeof ResultClass.isOk;
|
|
59
59
|
export declare const isErr: typeof ResultClass.isErr;
|
|
60
60
|
export { BaseError, UnexpectedError, UnexpectedErrorDataSchema, } from "./error.js";
|
|
61
|
-
export type {
|
|
61
|
+
export type { BaseErrorOptions, BaseErrorSchema, UnexpectedErrorData, } from "./error.js";
|
|
62
62
|
//# sourceMappingURL=mod.d.ts.map
|
package/esm/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,EACV,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,EAAE,uBAAiB,CAAC;AACjC,eAAO,MAAM,GAAG,wBAAkB,CAAC;AACnC,eAAO,MAAM,IAAI,yBAAmB,CAAC;AACrC,eAAO,MAAM,KAAK,0BAAoB,CAAC;AAEvC,OAAO,EACL,SAAS,EACT,eAAe,EACf,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/esm/mod.js
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
*/
|
|
52
52
|
import "./_dnt.polyfills.js";
|
|
53
53
|
import { Result as ResultClass } from "./result.js";
|
|
54
|
-
export {
|
|
54
|
+
export { AsyncResult, Result } from "./result.js";
|
|
55
55
|
export const ok = ResultClass.ok;
|
|
56
56
|
export const err = ResultClass.err;
|
|
57
57
|
export const isOk = ResultClass.isOk;
|
package/esm/result.d.ts
CHANGED
|
@@ -367,6 +367,17 @@ export declare class Result<T, E extends BaseError> {
|
|
|
367
367
|
* ```
|
|
368
368
|
*/
|
|
369
369
|
take(): [T] extends [never] ? Result<never, E> : T | Result<never, E>;
|
|
370
|
+
/**
|
|
371
|
+
* Returns the Ok value or throws the Err error.
|
|
372
|
+
*
|
|
373
|
+
* This is useful at process or demo boundaries where exception-style control
|
|
374
|
+
* flow is acceptable and a caller wants to avoid repetitive `take()` /
|
|
375
|
+
* `isErr(...)` branching.
|
|
376
|
+
*
|
|
377
|
+
* @returns The unwrapped Ok value
|
|
378
|
+
* @throws The contained Err error
|
|
379
|
+
*/
|
|
380
|
+
orThrow(): T;
|
|
370
381
|
/**
|
|
371
382
|
* Adds context to an Err result for early returns.
|
|
372
383
|
* Chainable with take() for adding context when propagating errors.
|
|
@@ -767,6 +778,15 @@ export declare class AsyncResult<T, E extends BaseError> implements PromiseLike<
|
|
|
767
778
|
* ```
|
|
768
779
|
*/
|
|
769
780
|
take(): Promise<T | Result<never, E>>;
|
|
781
|
+
/**
|
|
782
|
+
* Returns the Ok value or throws the Err error.
|
|
783
|
+
*
|
|
784
|
+
* Async version of `Result.orThrow()`.
|
|
785
|
+
*
|
|
786
|
+
* @returns Promise of the unwrapped Ok value
|
|
787
|
+
* @throws The contained Err error
|
|
788
|
+
*/
|
|
789
|
+
orThrow(): Promise<T>;
|
|
770
790
|
/**
|
|
771
791
|
* Adds context to an Err result for early returns.
|
|
772
792
|
* Async version - can be chained before take().
|
package/esm/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,SAAS;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
package/esm/result.js
CHANGED
|
@@ -360,6 +360,23 @@ export class Result {
|
|
|
360
360
|
}
|
|
361
361
|
return Result.err(value.error);
|
|
362
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* Returns the Ok value or throws the Err error.
|
|
365
|
+
*
|
|
366
|
+
* This is useful at process or demo boundaries where exception-style control
|
|
367
|
+
* flow is acceptable and a caller wants to avoid repetitive `take()` /
|
|
368
|
+
* `isErr(...)` branching.
|
|
369
|
+
*
|
|
370
|
+
* @returns The unwrapped Ok value
|
|
371
|
+
* @throws The contained Err error
|
|
372
|
+
*/
|
|
373
|
+
orThrow() {
|
|
374
|
+
const value = this._value;
|
|
375
|
+
if (isOkValue(value)) {
|
|
376
|
+
return value.value;
|
|
377
|
+
}
|
|
378
|
+
throw value.error;
|
|
379
|
+
}
|
|
363
380
|
/**
|
|
364
381
|
* Adds context to an Err result for early returns.
|
|
365
382
|
* Chainable with take() for adding context when propagating errors.
|
|
@@ -901,6 +918,18 @@ export class AsyncResult {
|
|
|
901
918
|
const result = await this.promise;
|
|
902
919
|
return result.take();
|
|
903
920
|
}
|
|
921
|
+
/**
|
|
922
|
+
* Returns the Ok value or throws the Err error.
|
|
923
|
+
*
|
|
924
|
+
* Async version of `Result.orThrow()`.
|
|
925
|
+
*
|
|
926
|
+
* @returns Promise of the unwrapped Ok value
|
|
927
|
+
* @throws The contained Err error
|
|
928
|
+
*/
|
|
929
|
+
async orThrow() {
|
|
930
|
+
const result = await this.promise;
|
|
931
|
+
return result.orThrow();
|
|
932
|
+
}
|
|
904
933
|
/**
|
|
905
934
|
* Adds context to an Err result for early returns.
|
|
906
935
|
* Async version - can be chained before take().
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qlever-llc/result",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0-rc.2",
|
|
4
4
|
"description": "Class-based Result and AsyncResult types for Trellis TypeScript applications.",
|
|
5
5
|
"homepage": "https://github.com/Qlever-LLC/trellis#readme",
|
|
6
6
|
"repository": {
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"require": "./script/mod.js"
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
+
"scripts": {},
|
|
22
23
|
"publishConfig": {
|
|
23
24
|
"access": "public"
|
|
24
25
|
},
|
|
@@ -1,3 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
3
|
+
* but instead of using npm to install additional dependencies,
|
|
4
|
+
* this approach manually consolidates cjs/mjs/d.ts into a single file.
|
|
5
|
+
*
|
|
6
|
+
* Note that this code might be imported multiple times
|
|
7
|
+
* (for example, both dnt.test.polyfills.ts and dnt.polyfills.ts contain this code;
|
|
8
|
+
* or Node.js might dynamically clear the cache and then force a require).
|
|
9
|
+
* Therefore, it's important to avoid redundant writes to global objects.
|
|
10
|
+
* Additionally, consider that commonjs is used alongside esm,
|
|
11
|
+
* so the two ponyfill functions are stored independently in two separate global objects.
|
|
12
|
+
*/
|
|
13
|
+
import { createRequire } from "node:module";
|
|
14
|
+
import { type URL } from "node:url";
|
|
15
|
+
declare global {
|
|
16
|
+
interface ImportMeta {
|
|
17
|
+
/** A string representation of the fully qualified module URL. When the
|
|
18
|
+
* module is loaded locally, the value will be a file URL (e.g.
|
|
19
|
+
* `file:///path/module.ts`).
|
|
20
|
+
*
|
|
21
|
+
* You can also parse the string as a URL to determine more information about
|
|
22
|
+
* how the current module was loaded. For example to determine if a module was
|
|
23
|
+
* local or not:
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const url = new URL(import.meta.url);
|
|
27
|
+
* if (url.protocol === "file:") {
|
|
28
|
+
* console.log("this module was loaded locally");
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
url: string;
|
|
33
|
+
/**
|
|
34
|
+
* A function that returns resolved specifier as if it would be imported
|
|
35
|
+
* using `import(specifier)`.
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* console.log(import.meta.resolve("./foo.js"));
|
|
39
|
+
* // file:///dev/foo.js
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @param specifier The module specifier to resolve relative to `parent`.
|
|
43
|
+
* @param parent The absolute parent module URL to resolve from.
|
|
44
|
+
* @returns The absolute (`file:`) URL string for the resolved module.
|
|
45
|
+
*/
|
|
46
|
+
resolve(specifier: string, parent?: string | URL | undefined): string;
|
|
47
|
+
/** A flag that indicates if the current module is the main module that was
|
|
48
|
+
* called when starting the program under Deno.
|
|
49
|
+
*
|
|
50
|
+
* ```ts
|
|
51
|
+
* if (import.meta.main) {
|
|
52
|
+
* // this was loaded as the main module, maybe do some bootstrapping
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
main: boolean;
|
|
57
|
+
/** The absolute path of the current module.
|
|
58
|
+
*
|
|
59
|
+
* This property is only provided for local modules (ie. using `file://` URLs).
|
|
60
|
+
*
|
|
61
|
+
* Example:
|
|
62
|
+
* ```
|
|
63
|
+
* // Unix
|
|
64
|
+
* console.log(import.meta.filename); // /home/alice/my_module.ts
|
|
65
|
+
*
|
|
66
|
+
* // Windows
|
|
67
|
+
* console.log(import.meta.filename); // C:\alice\my_module.ts
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
filename: string;
|
|
71
|
+
/** The absolute path of the directory containing the current module.
|
|
72
|
+
*
|
|
73
|
+
* This property is only provided for local modules (ie. using `file://` URLs).
|
|
74
|
+
*
|
|
75
|
+
* * Example:
|
|
76
|
+
* ```
|
|
77
|
+
* // Unix
|
|
78
|
+
* console.log(import.meta.dirname); // /home/alice
|
|
79
|
+
*
|
|
80
|
+
* // Windows
|
|
81
|
+
* console.log(import.meta.dirname); // C:\alice
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
dirname: string;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
type NodeRequest = ReturnType<typeof createRequire>;
|
|
88
|
+
type NodeModule = NonNullable<NodeRequest["main"]>;
|
|
89
|
+
interface ImportMetaPonyfillCommonjs {
|
|
90
|
+
(require: NodeRequest, module: NodeModule): ImportMeta;
|
|
91
|
+
}
|
|
92
|
+
interface ImportMetaPonyfillEsmodule {
|
|
93
|
+
(importMeta: ImportMeta): ImportMeta;
|
|
94
|
+
}
|
|
95
|
+
interface ImportMetaPonyfill extends ImportMetaPonyfillCommonjs, ImportMetaPonyfillEsmodule {
|
|
96
|
+
}
|
|
97
|
+
export declare let import_meta_ponyfill_commonjs: ImportMetaPonyfillCommonjs;
|
|
98
|
+
export declare let import_meta_ponyfill_esmodule: ImportMetaPonyfillEsmodule;
|
|
99
|
+
export declare let import_meta_ponyfill: ImportMetaPonyfill;
|
|
1
100
|
declare global {
|
|
2
101
|
interface Error {
|
|
3
102
|
cause?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF;AAED,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB;;;;;;;;;;;;;;WAcG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;QACtE;;;;;;;;WAQG;QACH,IAAI,EAAE,OAAO,CAAC;QAEd;;;;;;;;;;;;WAYG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;;;;;;;;;;WAYG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB;CACF;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,UAAU,0BAA0B;IAClC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACxD;AACD,UAAU,0BAA0B;IAClC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AACD,UAAU,kBACR,SAAQ,0BAA0B,EAAE,0BAA0B;CAC/D;AAiBD,eAAO,IAAI,6BAA6B,EA2BnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,6BAA6B,EA4DnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,oBAAoB,EAoB1B,kBAAkB,CAAC;AACxB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF;AAED,OAAO,EAAE,CAAC"}
|
package/script/_dnt.polyfills.js
CHANGED
|
@@ -1,2 +1,130 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.import_meta_ponyfill = exports.import_meta_ponyfill_esmodule = exports.import_meta_ponyfill_commonjs = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Based on [import-meta-ponyfill](https://github.com/gaubee/import-meta-ponyfill),
|
|
6
|
+
* but instead of using npm to install additional dependencies,
|
|
7
|
+
* this approach manually consolidates cjs/mjs/d.ts into a single file.
|
|
8
|
+
*
|
|
9
|
+
* Note that this code might be imported multiple times
|
|
10
|
+
* (for example, both dnt.test.polyfills.ts and dnt.polyfills.ts contain this code;
|
|
11
|
+
* or Node.js might dynamically clear the cache and then force a require).
|
|
12
|
+
* Therefore, it's important to avoid redundant writes to global objects.
|
|
13
|
+
* Additionally, consider that commonjs is used alongside esm,
|
|
14
|
+
* so the two ponyfill functions are stored independently in two separate global objects.
|
|
15
|
+
*/
|
|
16
|
+
//@ts-ignore
|
|
17
|
+
const node_module_1 = require("node:module");
|
|
18
|
+
//@ts-ignore
|
|
19
|
+
const node_url_1 = require("node:url");
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
const node_path_1 = require("node:path");
|
|
22
|
+
const defineGlobalPonyfill = (symbolFor, fn) => {
|
|
23
|
+
if (!Reflect.has(globalThis, Symbol.for(symbolFor))) {
|
|
24
|
+
Object.defineProperty(globalThis, Symbol.for(symbolFor), {
|
|
25
|
+
configurable: true,
|
|
26
|
+
get() {
|
|
27
|
+
return fn;
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.import_meta_ponyfill_commonjs = (Reflect.get(globalThis, Symbol.for("import-meta-ponyfill-commonjs")) ??
|
|
33
|
+
(() => {
|
|
34
|
+
const moduleImportMetaWM = new WeakMap();
|
|
35
|
+
return (require, module) => {
|
|
36
|
+
let importMetaCache = moduleImportMetaWM.get(module);
|
|
37
|
+
if (importMetaCache == null) {
|
|
38
|
+
const importMeta = Object.assign(Object.create(null), {
|
|
39
|
+
url: (0, node_url_1.pathToFileURL)(module.filename).href,
|
|
40
|
+
main: require.main == module,
|
|
41
|
+
resolve: (specifier, parentURL = importMeta.url) => {
|
|
42
|
+
return (0, node_url_1.pathToFileURL)((importMeta.url === parentURL
|
|
43
|
+
? require
|
|
44
|
+
: (0, node_module_1.createRequire)(parentURL))
|
|
45
|
+
.resolve(specifier)).href;
|
|
46
|
+
},
|
|
47
|
+
filename: module.filename,
|
|
48
|
+
dirname: module.path,
|
|
49
|
+
});
|
|
50
|
+
moduleImportMetaWM.set(module, importMeta);
|
|
51
|
+
importMetaCache = importMeta;
|
|
52
|
+
}
|
|
53
|
+
return importMetaCache;
|
|
54
|
+
};
|
|
55
|
+
})());
|
|
56
|
+
defineGlobalPonyfill("import-meta-ponyfill-commonjs", exports.import_meta_ponyfill_commonjs);
|
|
57
|
+
exports.import_meta_ponyfill_esmodule = (Reflect.get(globalThis, Symbol.for("import-meta-ponyfill-esmodule")) ??
|
|
58
|
+
((importMeta) => {
|
|
59
|
+
const resolveFunStr = String(importMeta.resolve);
|
|
60
|
+
const shimWs = new WeakSet();
|
|
61
|
+
//@ts-ignore
|
|
62
|
+
const mainUrl = ("file:///" + process.argv[1].replace(/\\/g, "/"))
|
|
63
|
+
.replace(/\/{3,}/, "///");
|
|
64
|
+
const commonShim = (importMeta) => {
|
|
65
|
+
if (typeof importMeta.main !== "boolean") {
|
|
66
|
+
importMeta.main = importMeta.url === mainUrl;
|
|
67
|
+
}
|
|
68
|
+
if (typeof importMeta.filename !== "string") {
|
|
69
|
+
importMeta.filename = (0, node_url_1.fileURLToPath)(importMeta.url);
|
|
70
|
+
importMeta.dirname = (0, node_path_1.dirname)(importMeta.filename);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
if (
|
|
74
|
+
// v16.2.0+, v14.18.0+: Add support for WHATWG URL object to parentURL parameter.
|
|
75
|
+
resolveFunStr === "undefined" ||
|
|
76
|
+
// v20.0.0+, v18.19.0+"" This API now returns a string synchronously instead of a Promise.
|
|
77
|
+
resolveFunStr.startsWith("async")
|
|
78
|
+
// enable by --experimental-import-meta-resolve flag
|
|
79
|
+
) {
|
|
80
|
+
exports.import_meta_ponyfill_esmodule = (importMeta) => {
|
|
81
|
+
if (!shimWs.has(importMeta)) {
|
|
82
|
+
shimWs.add(importMeta);
|
|
83
|
+
const importMetaUrlRequire = {
|
|
84
|
+
url: importMeta.url,
|
|
85
|
+
require: (0, node_module_1.createRequire)(importMeta.url),
|
|
86
|
+
};
|
|
87
|
+
importMeta.resolve = function resolve(specifier, parentURL = importMeta.url) {
|
|
88
|
+
return (0, node_url_1.pathToFileURL)((importMetaUrlRequire.url === parentURL
|
|
89
|
+
? importMetaUrlRequire.require
|
|
90
|
+
: (0, node_module_1.createRequire)(parentURL)).resolve(specifier)).href;
|
|
91
|
+
};
|
|
92
|
+
commonShim(importMeta);
|
|
93
|
+
}
|
|
94
|
+
return importMeta;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
/// native support
|
|
99
|
+
exports.import_meta_ponyfill_esmodule = (importMeta) => {
|
|
100
|
+
if (!shimWs.has(importMeta)) {
|
|
101
|
+
shimWs.add(importMeta);
|
|
102
|
+
commonShim(importMeta);
|
|
103
|
+
}
|
|
104
|
+
return importMeta;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return (0, exports.import_meta_ponyfill_esmodule)(importMeta);
|
|
108
|
+
}));
|
|
109
|
+
defineGlobalPonyfill("import-meta-ponyfill-esmodule", exports.import_meta_ponyfill_esmodule);
|
|
110
|
+
exports.import_meta_ponyfill = ((...args) => {
|
|
111
|
+
const _MODULE = (() => {
|
|
112
|
+
if (typeof require === "function" && typeof module === "object") {
|
|
113
|
+
return "commonjs";
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// eval("typeof import.meta");
|
|
117
|
+
return "esmodule";
|
|
118
|
+
}
|
|
119
|
+
})();
|
|
120
|
+
if (_MODULE === "commonjs") {
|
|
121
|
+
//@ts-ignore
|
|
122
|
+
exports.import_meta_ponyfill = (r, m) => (0, exports.import_meta_ponyfill_commonjs)(r, m);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
//@ts-ignore
|
|
126
|
+
exports.import_meta_ponyfill = (im) => (0, exports.import_meta_ponyfill_esmodule)(im);
|
|
127
|
+
}
|
|
128
|
+
//@ts-ignore
|
|
129
|
+
return (0, exports.import_meta_ponyfill)(...args);
|
|
130
|
+
});
|
package/script/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IAKZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,SAAS,CAC7B,KAAK,SAAS,eAAe,GAAG,eAAe,CAC/C,SAAQ,KAAK;;IACb;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAE7D,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,gDAAgD;IAChD,kBAA2B,IAAI,EAAE,MAAM,CAAC;gBAQ5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAcvD;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOpD;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrC;;;;;OAKG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAI1C;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,IAAI,eAAe;IAW7C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,IAAI,KAAK;IAEhC;;;;OAIG;IACH,MAAM,IAAI,MAAM;CAGjB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,SAAS,CAAC,mBAAmB,CAAC;IACjE,SAAkB,IAAI,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IAKZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,SAAS,CAC7B,KAAK,SAAS,eAAe,GAAG,eAAe,CAC/C,SAAQ,KAAK;;IACb;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAE7D,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,gDAAgD;IAChD,kBAA2B,IAAI,EAAE,MAAM,CAAC;gBAQ5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAcvD;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOpD;;;OAGG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrC;;;;;OAKG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,SAAS;IAI1C;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,IAAI,eAAe;IAW7C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,IAAI,KAAK;IAEhC;;;;OAIG;IACH,MAAM,IAAI,MAAM;CAGjB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,SAAS,CAAC,mBAAmB,CAAC;IACjE,SAAkB,IAAI,EAAG,iBAAiB,CAAU;gBAExC,OAAO,CAAC,EAAE,gBAAgB;IAiBtC;;;;OAIG;IACM,cAAc,IAAI,mBAAmB;CAG/C"}
|
package/script/error.js
CHANGED
|
@@ -55,7 +55,7 @@ class BaseError extends Error {
|
|
|
55
55
|
this.id = id ?? (0, ulid_1.ulid)();
|
|
56
56
|
__classPrivateFieldSet(this, _BaseError_context, context ?? {}, "f");
|
|
57
57
|
__classPrivateFieldSet(this, _BaseError_traceId, traceId ?? BaseError.traceIdGetter?.(), "f");
|
|
58
|
-
Object.setPrototypeOf(this,
|
|
58
|
+
Object.setPrototypeOf(this, globalThis[Symbol.for("import-meta-ponyfill-commonjs")](require, module).prototype);
|
|
59
59
|
if (Error.captureStackTrace) {
|
|
60
60
|
Error.captureStackTrace(this, this.constructor);
|
|
61
61
|
}
|
package/script/mod.d.ts
CHANGED
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
*/
|
|
52
52
|
import "./_dnt.polyfills.js";
|
|
53
53
|
import { Result as ResultClass } from "./result.js";
|
|
54
|
-
export {
|
|
55
|
-
export type {
|
|
54
|
+
export { AsyncResult, Result } from "./result.js";
|
|
55
|
+
export type { ErrValue, Infer, InferErr, MaybeAsync, OkValue, } from "./result.js";
|
|
56
56
|
export declare const ok: typeof ResultClass.ok;
|
|
57
57
|
export declare const err: typeof ResultClass.err;
|
|
58
58
|
export declare const isOk: typeof ResultClass.isOk;
|
|
59
59
|
export declare const isErr: typeof ResultClass.isErr;
|
|
60
60
|
export { BaseError, UnexpectedError, UnexpectedErrorDataSchema, } from "./error.js";
|
|
61
|
-
export type {
|
|
61
|
+
export type { BaseErrorOptions, BaseErrorSchema, UnexpectedErrorData, } from "./error.js";
|
|
62
62
|
//# sourceMappingURL=mod.d.ts.map
|
package/script/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,qBAAqB,CAAC;AAG7B,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,UAAU,EACV,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,EAAE,uBAAiB,CAAC;AACjC,eAAO,MAAM,GAAG,wBAAkB,CAAC;AACnC,eAAO,MAAM,IAAI,yBAAmB,CAAC;AACrC,eAAO,MAAM,KAAK,0BAAoB,CAAC;AAEvC,OAAO,EACL,SAAS,EACT,eAAe,EACf,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/script/mod.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnexpectedErrorDataSchema = exports.UnexpectedError = exports.BaseError = exports.isErr = exports.isOk = exports.err = exports.ok = exports.
|
|
3
|
+
exports.UnexpectedErrorDataSchema = exports.UnexpectedError = exports.BaseError = exports.isErr = exports.isOk = exports.err = exports.ok = exports.Result = exports.AsyncResult = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @qlever-llc/result - Class-based Result type for TypeScript/Deno
|
|
6
6
|
*
|
|
@@ -55,8 +55,8 @@ exports.UnexpectedErrorDataSchema = exports.UnexpectedError = exports.BaseError
|
|
|
55
55
|
require("./_dnt.polyfills.js");
|
|
56
56
|
const result_js_1 = require("./result.js");
|
|
57
57
|
var result_js_2 = require("./result.js");
|
|
58
|
-
Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return result_js_2.Result; } });
|
|
59
58
|
Object.defineProperty(exports, "AsyncResult", { enumerable: true, get: function () { return result_js_2.AsyncResult; } });
|
|
59
|
+
Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return result_js_2.Result; } });
|
|
60
60
|
exports.ok = result_js_1.Result.ok;
|
|
61
61
|
exports.err = result_js_1.Result.err;
|
|
62
62
|
exports.isOk = result_js_1.Result.isOk;
|
package/script/result.d.ts
CHANGED
|
@@ -367,6 +367,17 @@ export declare class Result<T, E extends BaseError> {
|
|
|
367
367
|
* ```
|
|
368
368
|
*/
|
|
369
369
|
take(): [T] extends [never] ? Result<never, E> : T | Result<never, E>;
|
|
370
|
+
/**
|
|
371
|
+
* Returns the Ok value or throws the Err error.
|
|
372
|
+
*
|
|
373
|
+
* This is useful at process or demo boundaries where exception-style control
|
|
374
|
+
* flow is acceptable and a caller wants to avoid repetitive `take()` /
|
|
375
|
+
* `isErr(...)` branching.
|
|
376
|
+
*
|
|
377
|
+
* @returns The unwrapped Ok value
|
|
378
|
+
* @throws The contained Err error
|
|
379
|
+
*/
|
|
380
|
+
orThrow(): T;
|
|
370
381
|
/**
|
|
371
382
|
* Adds context to an Err result for early returns.
|
|
372
383
|
* Chainable with take() for adding context when propagating errors.
|
|
@@ -767,6 +778,15 @@ export declare class AsyncResult<T, E extends BaseError> implements PromiseLike<
|
|
|
767
778
|
* ```
|
|
768
779
|
*/
|
|
769
780
|
take(): Promise<T | Result<never, E>>;
|
|
781
|
+
/**
|
|
782
|
+
* Returns the Ok value or throws the Err error.
|
|
783
|
+
*
|
|
784
|
+
* Async version of `Result.orThrow()`.
|
|
785
|
+
*
|
|
786
|
+
* @returns Promise of the unwrapped Ok value
|
|
787
|
+
* @throws The contained Err error
|
|
788
|
+
*/
|
|
789
|
+
orThrow(): Promise<T>;
|
|
770
790
|
/**
|
|
771
791
|
* Adds context to an Err result for early returns.
|
|
772
792
|
* Async version - can be chained before take().
|
package/script/result.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,SAAS;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
|
package/script/result.js
CHANGED
|
@@ -363,6 +363,23 @@ class Result {
|
|
|
363
363
|
}
|
|
364
364
|
return Result.err(value.error);
|
|
365
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* Returns the Ok value or throws the Err error.
|
|
368
|
+
*
|
|
369
|
+
* This is useful at process or demo boundaries where exception-style control
|
|
370
|
+
* flow is acceptable and a caller wants to avoid repetitive `take()` /
|
|
371
|
+
* `isErr(...)` branching.
|
|
372
|
+
*
|
|
373
|
+
* @returns The unwrapped Ok value
|
|
374
|
+
* @throws The contained Err error
|
|
375
|
+
*/
|
|
376
|
+
orThrow() {
|
|
377
|
+
const value = this._value;
|
|
378
|
+
if (isOkValue(value)) {
|
|
379
|
+
return value.value;
|
|
380
|
+
}
|
|
381
|
+
throw value.error;
|
|
382
|
+
}
|
|
366
383
|
/**
|
|
367
384
|
* Adds context to an Err result for early returns.
|
|
368
385
|
* Chainable with take() for adding context when propagating errors.
|
|
@@ -905,6 +922,18 @@ class AsyncResult {
|
|
|
905
922
|
const result = await this.promise;
|
|
906
923
|
return result.take();
|
|
907
924
|
}
|
|
925
|
+
/**
|
|
926
|
+
* Returns the Ok value or throws the Err error.
|
|
927
|
+
*
|
|
928
|
+
* Async version of `Result.orThrow()`.
|
|
929
|
+
*
|
|
930
|
+
* @returns Promise of the unwrapped Ok value
|
|
931
|
+
* @throws The contained Err error
|
|
932
|
+
*/
|
|
933
|
+
async orThrow() {
|
|
934
|
+
const result = await this.promise;
|
|
935
|
+
return result.orThrow();
|
|
936
|
+
}
|
|
908
937
|
/**
|
|
909
938
|
* Adds context to an Err result for early returns.
|
|
910
939
|
* Async version - can be chained before take().
|