1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | import { Refinement } from 'fp-ts/lib/function'
|
12 | import { Literal, Schemable1, WithRefine1, WithUnion1, WithUnknownContainers1 } from './Schemable'
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | export interface Guard<I, A extends I> {
|
18 | is: (i: I) => i is A
|
19 | }
|
20 |
|
21 |
|
22 |
|
23 | export declare type TypeOf<G> = G extends Guard<any, infer A> ? A : never
|
24 |
|
25 |
|
26 |
|
27 | export declare type InputOf<G> = G extends Guard<infer I, any> ? I : never
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | export declare const literal: <A extends readonly [Literal, ...Literal[]]>(...values: A) => Guard<unknown, A[number]>
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | export declare const string: Guard<unknown, string>
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 | export declare const number: Guard<unknown, number>
|
45 |
|
46 |
|
47 |
|
48 |
|
49 | export declare const boolean: Guard<unknown, boolean>
|
50 |
|
51 |
|
52 |
|
53 |
|
54 | export declare const UnknownArray: Guard<unknown, Array<unknown>>
|
55 |
|
56 |
|
57 |
|
58 |
|
59 | export declare const UnknownRecord: Guard<unknown, Record<string, unknown>>
|
60 |
|
61 |
|
62 |
|
63 |
|
64 | export declare const refine: <I, A extends I, B extends A>(
|
65 | refinement: Refinement<A, B>
|
66 | ) => (from: Guard<I, A>) => Guard<I, B>
|
67 |
|
68 |
|
69 |
|
70 |
|
71 | export declare const nullable: <I, A extends I>(or: Guard<I, A>) => Guard<I | null, A | null>
|
72 |
|
73 |
|
74 |
|
75 |
|
76 | export declare const struct: <A>(
|
77 | properties: { [K in keyof A]: Guard<unknown, A[K]> }
|
78 | ) => Guard<unknown, { [K_1 in keyof A]: A[K_1] }>
|
79 |
|
80 |
|
81 |
|
82 |
|
83 |
|
84 |
|
85 |
|
86 | export declare const type: <A>(
|
87 | properties: { [K in keyof A]: Guard<unknown, A[K]> }
|
88 | ) => Guard<unknown, { [K_1 in keyof A]: A[K_1] }>
|
89 |
|
90 |
|
91 |
|
92 |
|
93 | export declare const partial: <A>(
|
94 | properties: { [K in keyof A]: Guard<unknown, A[K]> }
|
95 | ) => Guard<unknown, Partial<{ [K_1 in keyof A]: A[K_1] }>>
|
96 |
|
97 |
|
98 |
|
99 |
|
100 | export declare const array: <A>(item: Guard<unknown, A>) => Guard<unknown, A[]>
|
101 |
|
102 |
|
103 |
|
104 |
|
105 | export declare const record: <A>(codomain: Guard<unknown, A>) => Guard<unknown, Record<string, A>>
|
106 |
|
107 |
|
108 |
|
109 |
|
110 | export declare const tuple: <A extends readonly unknown[]>(
|
111 | ...components: { [K in keyof A]: Guard<unknown, A[K]> }
|
112 | ) => Guard<unknown, A>
|
113 |
|
114 |
|
115 |
|
116 |
|
117 | export declare const intersect: <B>(right: Guard<unknown, B>) => <A>(left: Guard<unknown, A>) => Guard<unknown, A & B>
|
118 |
|
119 |
|
120 |
|
121 |
|
122 | export declare const union: <A extends readonly [unknown, ...unknown[]]>(
|
123 | ...members: { [K in keyof A]: Guard<unknown, A[K]> }
|
124 | ) => Guard<unknown, A[number]>
|
125 |
|
126 |
|
127 |
|
128 |
|
129 | export declare const sum: <T extends string>(
|
130 | tag: T
|
131 | ) => <A>(members: { [K in keyof A]: Guard<unknown, A[K] & Record<T, K>> }) => Guard<unknown, A[keyof A]>
|
132 |
|
133 |
|
134 |
|
135 |
|
136 | export declare const lazy: <A>(f: () => Guard<unknown, A>) => Guard<unknown, A>
|
137 |
|
138 |
|
139 |
|
140 |
|
141 | export declare const readonly: <I, A extends I>(guard: Guard<I, A>) => Guard<I, Readonly<A>>
|
142 |
|
143 |
|
144 |
|
145 |
|
146 | export declare const alt: <I, A extends I>(that: () => Guard<I, A>) => (me: Guard<I, A>) => Guard<I, A>
|
147 |
|
148 |
|
149 |
|
150 |
|
151 | export declare const zero: <I, A extends I>() => Guard<I, A>
|
152 |
|
153 |
|
154 |
|
155 |
|
156 | export declare const compose: <I, A extends I, B extends A>(to: Guard<A, B>) => (from: Guard<I, A>) => Guard<I, B>
|
157 |
|
158 |
|
159 |
|
160 |
|
161 | export declare const id: <A>() => Guard<A, A>
|
162 |
|
163 |
|
164 |
|
165 |
|
166 | export declare const URI = 'io-ts/Guard'
|
167 |
|
168 |
|
169 |
|
170 |
|
171 | export declare type URI = typeof URI
|
172 | declare module 'fp-ts/lib/HKT' {
|
173 | interface URItoKind<A> {
|
174 | readonly [URI]: Guard<unknown, A>
|
175 | }
|
176 | }
|
177 |
|
178 |
|
179 |
|
180 |
|
181 | export declare const Schemable: Schemable1<URI>
|
182 |
|
183 |
|
184 |
|
185 |
|
186 | export declare const WithUnknownContainers: WithUnknownContainers1<URI>
|
187 |
|
188 |
|
189 |
|
190 |
|
191 | export declare const WithUnion: WithUnion1<URI>
|
192 |
|
193 |
|
194 |
|
195 |
|
196 | export declare const WithRefine: WithRefine1<URI>
|