1 |
|
2 |
|
3 |
|
4 | import { Invariant2 } from 'fp-ts/es6/Invariant';
|
5 | import * as D from './Decoder';
|
6 | import * as E from './Encoder';
|
7 | import { Literal } from './Schemable';
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | export interface Codec<O, A> extends D.Decoder<A>, E.Encoder<O, A> {
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 | export declare type TypeOf<C> = E.TypeOf<C>;
|
22 |
|
23 |
|
24 |
|
25 | export declare type OutputOf<C> = E.OutputOf<C>;
|
26 |
|
27 |
|
28 |
|
29 | export declare function make<O, A>(decoder: D.Decoder<A>, encoder: E.Encoder<O, A>): Codec<O, A>;
|
30 |
|
31 |
|
32 |
|
33 | export declare function fromDecoder<A>(decoder: D.Decoder<A>): Codec<A, A>;
|
34 |
|
35 |
|
36 |
|
37 | export declare function literal<A extends ReadonlyArray<Literal>>(...values: A): Codec<A[number], A[number]>;
|
38 |
|
39 |
|
40 |
|
41 | export declare const string: Codec<string, string>;
|
42 |
|
43 |
|
44 |
|
45 | export declare const number: Codec<number, number>;
|
46 |
|
47 |
|
48 |
|
49 | export declare const boolean: Codec<boolean, boolean>;
|
50 |
|
51 |
|
52 |
|
53 | export declare const UnknownArray: Codec<Array<unknown>, Array<unknown>>;
|
54 |
|
55 |
|
56 |
|
57 | export declare const UnknownRecord: Codec<Record<string, unknown>, Record<string, unknown>>;
|
58 |
|
59 |
|
60 |
|
61 | export declare function withExpected<O, A>(codec: Codec<O, A>, expected: (actual: unknown, e: D.DecodeError) => D.DecodeError): Codec<O, A>;
|
62 |
|
63 |
|
64 |
|
65 | export declare function refinement<O, A, B extends A>(from: Codec<O, A>, refinement: (a: A) => a is B, expected: string): Codec<O, B>;
|
66 |
|
67 |
|
68 |
|
69 | export declare function nullable<O, A>(or: Codec<O, A>): Codec<null | O, null | A>;
|
70 |
|
71 |
|
72 |
|
73 | export declare function type<P extends Record<string, Codec<any, any>>>(properties: P): Codec<{
|
74 | [K in keyof P]: OutputOf<P[K]>;
|
75 | }, {
|
76 | [K in keyof P]: TypeOf<P[K]>;
|
77 | }>;
|
78 |
|
79 |
|
80 |
|
81 | export declare function partial<P extends Record<string, Codec<any, any>>>(properties: P): Codec<Partial<{
|
82 | [K in keyof P]: OutputOf<P[K]>;
|
83 | }>, Partial<{
|
84 | [K in keyof P]: TypeOf<P[K]>;
|
85 | }>>;
|
86 |
|
87 |
|
88 |
|
89 | export declare function record<O, A>(codomain: Codec<O, A>): Codec<Record<string, O>, Record<string, A>>;
|
90 |
|
91 |
|
92 |
|
93 | export declare function array<O, A>(items: Codec<O, A>): Codec<Array<O>, Array<A>>;
|
94 |
|
95 |
|
96 |
|
97 | export declare function tuple<C extends ReadonlyArray<Codec<any, any>>>(...components: C): Codec<{
|
98 | [K in keyof C]: OutputOf<C[K]>;
|
99 | }, {
|
100 | [K in keyof C]: TypeOf<C[K]>;
|
101 | }>;
|
102 |
|
103 |
|
104 |
|
105 | export declare function intersection<O, A, P, B>(left: Codec<O, A>, right: Codec<P, B>): Codec<O & P, A & B>;
|
106 |
|
107 |
|
108 |
|
109 | export declare function sum<T extends string>(tag: T): <M extends Record<string, Codec<any, any>>>(members: M) => Codec<OutputOf<M[keyof M]>, TypeOf<M[keyof M]>>;
|
110 |
|
111 |
|
112 |
|
113 | export declare function lazy<O, A>(id: string, f: () => Codec<O, A>): Codec<O, A>;
|
114 |
|
115 |
|
116 |
|
117 | export declare const imap: <E, A, B>(f: (a: A) => B, g: (b: B) => A) => (fa: Codec<E, A>) => Codec<E, B>;
|
118 |
|
119 |
|
120 |
|
121 | export declare const URI = "io-ts/Codec";
|
122 |
|
123 |
|
124 |
|
125 | export declare type URI = typeof URI;
|
126 | declare module 'fp-ts/es6/HKT' {
|
127 | interface URItoKind2<E, A> {
|
128 | readonly [URI]: Codec<E, A>;
|
129 | }
|
130 | }
|
131 |
|
132 |
|
133 |
|
134 | export declare const invariantCodec: Invariant2<URI>;
|