Skip to content

Commit 068cee6

Browse files
author
Leon Si
committed
feat: allow omitting the argument in ok()
1 parent fb51dc7 commit 068cee6

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "errok",
33
"type": "module",
4-
"version": "0.0.1",
4+
"version": "0.0.2",
55
"description": "Type-safe error handling",
66
"exports": {
77
"require": {

src/result.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,10 @@ export namespace Result {
7575

7676
export type Result<T, E> = Ok<T, E> | Err<T, E>;
7777

78-
export const ok = <T, E = never>(value: T): Ok<T, E> => new Ok(value);
78+
export const ok: {
79+
<T, E = never>(value: T): Ok<T, E>
80+
<T extends undefined, E = never>(): Ok<T, E>
81+
} = (value?: any) => new Ok(value);
7982

8083
export const err = <T = never, E = unknown>(err: E): Err<T, E> => new Err(err);
8184

@@ -145,7 +148,8 @@ export function $try(
145148
$err: <E>(error: E) => Err<never, E>,
146149
) => AsyncGenerator<Err<never, unknown>, Result<unknown, unknown>>),
147150
): any {
148-
const n = body(ok, err).next();
151+
// TODO: fix this type
152+
const n = body(ok as any, err).next();
149153
if (n instanceof Promise) {
150154
return new ResultAsync(n.then((r) => r.value));
151155
}

0 commit comments

Comments
 (0)