Skip to content

Commit fbae578

Browse files
committed
feat(Contract): add TS support
1 parent bcc946a commit fbae578

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/index.d.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,26 @@ export declare class UnionError extends ValidationError {
2828
);
2929
}
3030

31+
export type Contract<T> = {
32+
(valueName: string): {
33+
(value: unknown): ValidationError | T,
34+
optional(value: unknown): ValidationError | void | T,
35+
maybe(value: unknown): ValidationError | void | null | T,
36+
},
37+
(valueName: string, value: unknown): ValidationError | T,
38+
39+
optional(
40+
valueName: string
41+
): (value: unknown) => ValidationError | void | T,
42+
optional(valueName: string, value: unknown): ValidationError | void | T,
43+
44+
maybe(
45+
valueName: string
46+
): (value: unknown) => ValidationError | void | null | T,
47+
maybe(valueName: string, value: unknown): ValidationError | void | null | T,
48+
};
49+
50+
export declare function of<T>(
51+
validate: (valueName: string, value: unknown) => ValidationError | T,
52+
): Contract<T>;
53+

0 commit comments

Comments
 (0)