1 |
|
2 |
|
3 |
|
4 | import { Either } from 'fp-ts/es6/Either';
|
5 | import { NonEmptyArray } from 'fp-ts/es6/NonEmptyArray';
|
6 | import { Forest, Tree } from 'fp-ts/es6/Tree';
|
7 | import * as G from './Guard';
|
8 | import { Literal, Schemable1, WithRefinement1, WithUnion1, WithUnknownContainers1 } from './Schemable';
|
9 | import { Functor1 } from 'fp-ts/es6/Functor';
|
10 | import { Alt1 } from 'fp-ts/es6/Alt';
|
11 |
|
12 |
|
13 |
|
14 | export interface DecodeError extends NonEmptyArray<Tree<string>> {
|
15 | }
|
16 |
|
17 |
|
18 |
|
19 | export interface Decoder<A> {
|
20 | readonly decode: (u: unknown) => Either<DecodeError, A>;
|
21 | }
|
22 |
|
23 |
|
24 |
|
25 | export declare type TypeOf<D> = D extends Decoder<infer A> ? A : never;
|
26 |
|
27 |
|
28 |
|
29 | export declare function tree<A>(value: A, forest?: Forest<A>): Tree<A>;
|
30 |
|
31 |
|
32 |
|
33 | export declare function success<A>(a: A): Either<DecodeError, A>;
|
34 |
|
35 |
|
36 |
|
37 | export declare function failure<A = never>(message: string): Either<DecodeError, A>;
|
38 |
|
39 |
|
40 |
|
41 | export declare function isNotEmpty<A>(as: ReadonlyArray<A>): as is NonEmptyArray<A>;
|
42 |
|
43 |
|
44 |
|
45 | export declare function of<A>(a: A): Decoder<A>;
|
46 |
|
47 |
|
48 |
|
49 | export declare function fromGuard<A>(guard: G.Guard<A>, expected: string): Decoder<A>;
|
50 |
|
51 |
|
52 |
|
53 | export declare function literal<A extends ReadonlyArray<Literal>>(...values: A): Decoder<A[number]>;
|
54 |
|
55 |
|
56 |
|
57 | export declare const never: Decoder<never>;
|
58 |
|
59 |
|
60 |
|
61 | export declare const string: Decoder<string>;
|
62 |
|
63 |
|
64 |
|
65 | export declare const number: Decoder<number>;
|
66 |
|
67 |
|
68 |
|
69 | export declare const boolean: Decoder<boolean>;
|
70 |
|
71 |
|
72 |
|
73 | export declare const UnknownArray: Decoder<Array<unknown>>;
|
74 |
|
75 |
|
76 |
|
77 | export declare const UnknownRecord: Decoder<Record<string, unknown>>;
|
78 |
|
79 |
|
80 |
|
81 | export declare function withExpected<A>(decoder: Decoder<A>, expected: (actual: unknown, e: DecodeError) => DecodeError): Decoder<A>;
|
82 |
|
83 |
|
84 |
|
85 | export declare function refinement<A, B extends A>(from: Decoder<A>, refinement: (a: A) => a is B, expected: string): Decoder<B>;
|
86 |
|
87 |
|
88 |
|
89 | export declare function parse<A, B>(from: Decoder<A>, parser: (a: A) => Either<string, B>): Decoder<B>;
|
90 |
|
91 |
|
92 |
|
93 | export declare function nullable<A>(or: Decoder<A>): Decoder<null | A>;
|
94 |
|
95 |
|
96 |
|
97 | export declare function type<A>(properties: {
|
98 | [K in keyof A]: Decoder<A[K]>;
|
99 | }): Decoder<{
|
100 | [K in keyof A]: A[K];
|
101 | }>;
|
102 |
|
103 |
|
104 |
|
105 | export declare function partial<A>(properties: {
|
106 | [K in keyof A]: Decoder<A[K]>;
|
107 | }): Decoder<Partial<{
|
108 | [K in keyof A]: A[K];
|
109 | }>>;
|
110 |
|
111 |
|
112 |
|
113 | export declare function record<A>(codomain: Decoder<A>): Decoder<Record<string, A>>;
|
114 |
|
115 |
|
116 |
|
117 | export declare function array<A>(items: Decoder<A>): Decoder<Array<A>>;
|
118 |
|
119 |
|
120 |
|
121 | export declare function tuple<A extends ReadonlyArray<unknown>>(...components: {
|
122 | [K in keyof A]: Decoder<A[K]>;
|
123 | }): Decoder<A>;
|
124 |
|
125 |
|
126 |
|
127 | export declare function intersection<A, B>(left: Decoder<A>, right: Decoder<B>): Decoder<A & B>;
|
128 |
|
129 |
|
130 |
|
131 | export declare function lazy<A>(id: string, f: () => Decoder<A>): Decoder<A>;
|
132 |
|
133 |
|
134 |
|
135 | export declare function sum<T extends string>(tag: T): <A>(members: {
|
136 | [K in keyof A]: Decoder<A[K]>;
|
137 | }) => Decoder<A[keyof A]>;
|
138 |
|
139 |
|
140 |
|
141 | export declare function union<A extends ReadonlyArray<unknown>>(...members: {
|
142 | [K in keyof A]: Decoder<A[K]>;
|
143 | }): Decoder<A[number]>;
|
144 |
|
145 |
|
146 |
|
147 | export declare const map: <A, B>(f: (a: A) => B) => (fa: Decoder<A>) => Decoder<B>;
|
148 |
|
149 |
|
150 |
|
151 | export declare const alt: <A>(that: () => Decoder<A>) => (fa: Decoder<A>) => Decoder<A>;
|
152 |
|
153 |
|
154 |
|
155 | export declare const URI = "io-ts/Decoder";
|
156 |
|
157 |
|
158 |
|
159 | export declare type URI = typeof URI;
|
160 | declare module 'fp-ts/es6/HKT' {
|
161 | interface URItoKind<A> {
|
162 | readonly [URI]: Decoder<A>;
|
163 | }
|
164 | }
|
165 |
|
166 |
|
167 |
|
168 | export declare const functorDecoder: Functor1<URI>;
|
169 |
|
170 |
|
171 |
|
172 | export declare const altDecoder: Alt1<URI>;
|
173 |
|
174 |
|
175 |
|
176 | export declare const schemableDecoder: Schemable1<URI> & WithUnknownContainers1<URI> & WithUnion1<URI> & WithRefinement1<URI>;
|