1 | import { identity } from 'fp-ts/es6/function';
|
2 | import * as E from './Encoder';
|
3 | // -------------------------------------------------------------------------------------
|
4 | // primitives
|
5 | // -------------------------------------------------------------------------------------
|
6 | /**
|
7 | * @since 2.2.5
|
8 | */
|
9 | export function id() {
|
10 | return {
|
11 | encode: identity
|
12 | };
|
13 | }
|
14 | // -------------------------------------------------------------------------------------
|
15 | // combinators
|
16 | // -------------------------------------------------------------------------------------
|
17 | /**
|
18 | * @since 2.2.3
|
19 | */
|
20 | export var nullable = E.nullable;
|
21 | /**
|
22 | * @since 2.2.3
|
23 | */
|
24 | export var type = E.type;
|
25 | /**
|
26 | * @since 2.2.3
|
27 | */
|
28 | export var partial = E.partial;
|
29 | /**
|
30 | * @since 2.2.3
|
31 | */
|
32 | export var record = E.record;
|
33 | /**
|
34 | * @since 2.2.3
|
35 | */
|
36 | export var array = E.array;
|
37 | /**
|
38 | * @since 2.2.3
|
39 | */
|
40 | export var tuple = E.tuple;
|
41 | /**
|
42 | * @since 2.2.3
|
43 | */
|
44 | export var intersection = E.intersection;
|
45 | /**
|
46 | * @since 2.2.3
|
47 | */
|
48 | export var sum = E.sum;
|
49 | /**
|
50 | * @since 2.2.3
|
51 | */
|
52 | export var lazy = E.lazy;
|
53 | // -------------------------------------------------------------------------------------
|
54 | // pipeables
|
55 | // -------------------------------------------------------------------------------------
|
56 | /**
|
57 | * @since 2.2.3
|
58 | */
|
59 | export var contramap = E.contramap;
|
60 | // -------------------------------------------------------------------------------------
|
61 | // instances
|
62 | // -------------------------------------------------------------------------------------
|
63 | /**
|
64 | * @since 2.2.3
|
65 | */
|
66 | export var URI = 'io-ts/JsonEncoder';
|
67 | /**
|
68 | * @since 2.2.3
|
69 | */
|
70 | export var contravariantJsonEncoder = {
|
71 | URI: URI,
|
72 | contramap: E.contravariantEncoder.contramap
|
73 | };
|
74 | /**
|
75 | * @since 2.2.3
|
76 | */
|
77 | export var schemableJsonEncoder = {
|
78 | URI: URI,
|
79 | literal: function () { return id(); },
|
80 | string: id(),
|
81 | number: id(),
|
82 | boolean: id(),
|
83 | nullable: nullable,
|
84 | type: type,
|
85 | partial: partial,
|
86 | record: record,
|
87 | array: array,
|
88 | tuple: tuple,
|
89 | intersection: intersection,
|
90 | sum: sum,
|
91 | lazy: function (_, f) { return lazy(f); }
|
92 | };
|