UNPKG

3.24 kBJavaScriptView Raw
1/**
2 * @since 2.2.3
3 */
4import * as t from './index';
5// -------------------------------------------------------------------------------------
6// constructors
7// -------------------------------------------------------------------------------------
8/**
9 * @since 2.2.3
10 */
11export function literal() {
12 var values = [];
13 for (var _i = 0; _i < arguments.length; _i++) {
14 values[_i] = arguments[_i];
15 }
16 return t.union(values.map(function (v) { return t.literal(v); }));
17}
18// -------------------------------------------------------------------------------------
19// primitives
20// -------------------------------------------------------------------------------------
21/**
22 * @since 2.2.3
23 */
24export var string = t.string;
25/**
26 * @since 2.2.3
27 */
28export var number = t.number;
29/**
30 * @since 2.2.3
31 */
32export var boolean = t.boolean;
33/**
34 * @since 2.2.3
35 */
36export var UnknownArray = t.UnknownArray;
37/**
38 * @since 2.2.3
39 */
40export var UnknownRecord = t.UnknownRecord;
41// -------------------------------------------------------------------------------------
42// combinators
43// -------------------------------------------------------------------------------------
44/**
45 * @since 2.2.3
46 */
47export function refinement(from, refinement, expected) {
48 // tslint:disable-next-line: deprecation
49 return t.refinement(from, refinement, expected);
50}
51/**
52 * @since 2.2.3
53 */
54export function nullable(or) {
55 return t.union([t.null, or]);
56}
57/**
58 * @since 2.2.3
59 */
60export function type(properties) {
61 return t.type(properties);
62}
63/**
64 * @since 2.2.3
65 */
66export function partial(properties) {
67 return t.partial(properties);
68}
69/**
70 * @since 2.2.3
71 */
72export function record(codomain) {
73 return t.record(t.string, codomain);
74}
75/**
76 * @since 2.2.3
77 */
78export function array(items) {
79 return t.array(items);
80}
81/**
82 * @since 2.2.3
83 */
84export function tuple() {
85 var components = [];
86 for (var _i = 0; _i < arguments.length; _i++) {
87 components[_i] = arguments[_i];
88 }
89 return t.tuple(components);
90}
91/**
92 * @since 2.2.3
93 */
94export function intersection(left, right) {
95 return t.intersection([left, right]);
96}
97/**
98 * @since 2.2.3
99 */
100export function lazy(id, f) {
101 return t.recursion(id, f);
102}
103/**
104 * @since 2.2.3
105 */
106export function sum(_tag) {
107 return function (members) { return t.union(Object.values(members)); };
108}
109/**
110 * @since 2.2.3
111 */
112export function union() {
113 var members = [];
114 for (var _i = 0; _i < arguments.length; _i++) {
115 members[_i] = arguments[_i];
116 }
117 return t.union(members);
118}
119// -------------------------------------------------------------------------------------
120// instances
121// -------------------------------------------------------------------------------------
122/**
123 * @since 2.2.3
124 */
125export var URI = 'io-ts/Type';
126/**
127 * @since 2.2.3
128 */
129export var schemableType = {
130 URI: URI,
131 literal: literal,
132 string: string,
133 number: number,
134 boolean: boolean,
135 nullable: nullable,
136 type: type,
137 partial: partial,
138 record: record,
139 array: array,
140 tuple: tuple,
141 intersection: intersection,
142 sum: sum,
143 lazy: lazy,
144 UnknownArray: UnknownArray,
145 UnknownRecord: UnknownRecord,
146 union: union,
147 refinement: refinement
148};