Skip to content

Commit c97d0bb

Browse files
committed
feat(encode): remove Composite namespace
1 parent b192d50 commit c97d0bb

File tree

2 files changed

+22
-25
lines changed

2 files changed

+22
-25
lines changed

src/Json_Encode.res

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,20 @@ external float: float => Js.Json.t = "%identity"
55
external bool: bool => Js.Json.t = "%identity"
66
external string: string => Js.Json.t = "%identity"
77

8-
module Composite = {
9-
external jsonDict: Js.Dict.t<Js.Json.t> => Js.Json.t = "%identity"
10-
external jsonArray: array<Js.Json.t> => Js.Json.t = "%identity"
11-
external stringArray: array<string> => Js.Json.t = "%identity"
12-
external intArray: array<int> => Js.Json.t = "%identity"
13-
external floatArray: array<float> => Js.Json.t = "%identity"
14-
external boolArray: array<bool> => Js.Json.t = "%identity"
15-
}
8+
external jsonDict: Js.Dict.t<Js.Json.t> => Js.Json.t = "%identity"
9+
external jsonArray: array<Js.Json.t> => Js.Json.t = "%identity"
10+
external stringArray: array<string> => Js.Json.t = "%identity"
11+
external intArray: array<int> => Js.Json.t = "%identity"
12+
external floatArray: array<float> => Js.Json.t = "%identity"
13+
external boolArray: array<bool> => Js.Json.t = "%identity"
1614

1715
@val external null: Js.Json.t = "null"
1816

19-
let array = (encode, arr) => arr->Js.Array2.map(encode)->Composite.jsonArray
17+
let array = (encode, arr) => arr->Js.Array2.map(encode)->jsonArray
2018

2119
let list = (encode, l) =>
2220
switch l {
23-
| list{} => Composite.jsonArray([])
21+
| list{} => jsonArray([])
2422
| list{hd, ...tl} =>
2523
let arr = Array.make(l->List.length, hd->encode)
2624
let rec fill = (i, l) =>
@@ -30,10 +28,10 @@ let list = (encode, l) =>
3028
Array.unsafe_set(arr, i, hd->encode)
3129
fill(i + 1, tl)
3230
}
33-
fill(1, tl)->Composite.jsonArray
31+
fill(1, tl)->jsonArray
3432
}
3533

36-
let object = props => props->Js.Dict.fromArray->Composite.jsonDict
34+
let object = props => props->Js.Dict.fromArray->jsonDict
3735

3836
let option = (encode, opt) =>
3937
switch opt {
@@ -49,14 +47,14 @@ let withDefault = (default, encode, opt) =>
4947

5048
let date = date => date->Js.Date.toJSONUnsafe->string
5149

52-
let pair = (encodeA, encodeB, (a, b)) => [a->encodeA, b->encodeB]->Composite.jsonArray
53-
let tuple2 = (encodeA, encodeB, (a, b)) => [a->encodeA, b->encodeB]->Composite.jsonArray
50+
let pair = (encodeA, encodeB, (a, b)) => [a->encodeA, b->encodeB]->jsonArray
51+
let tuple2 = (encodeA, encodeB, (a, b)) => [a->encodeA, b->encodeB]->jsonArray
5452
let tuple3 = (encodeA, encodeB, encodeC, (a, b, c)) =>
55-
[a->encodeA, b->encodeB, c->encodeC]->Composite.jsonArray
53+
[a->encodeA, b->encodeB, c->encodeC]->jsonArray
5654
let tuple4 = (encodeA, encodeB, encodeC, encodeD, (a, b, c, d)) =>
57-
[a->encodeA, b->encodeB, c->encodeC, d->encodeD]->Composite.jsonArray
55+
[a->encodeA, b->encodeB, c->encodeC, d->encodeD]->jsonArray
5856

59-
let dict = (encode, dict) => Js.Dict.map((. v) => encode(v), dict)->Composite.jsonDict
57+
let dict = (encode, dict) => Js.Dict.map((. v) => encode(v), dict)->jsonDict
6058

6159
module Unsafe = {
6260
external object: {..} => Js.Json.t = "%identity"

src/Json_Encode.resi

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@ let tuple3: (t<'a>, t<'b>, t<'c>, ('a, 'b, 'c)) => Js.Json.t
1919
let tuple4: (t<'a>, t<'b>, t<'c>, t<'d>, ('a, 'b, 'c, 'd)) => Js.Json.t
2020
let dict: (t<'a>, Js.Dict.t<'a>) => Js.Json.t
2121

22-
module Composite: {
23-
external jsonDict: Js.Dict.t<Js.Json.t> => Js.Json.t = "%identity"
24-
external jsonArray: array<Js.Json.t> => Js.Json.t = "%identity"
25-
external stringArray: array<string> => Js.Json.t = "%identity"
26-
external intArray: array<int> => Js.Json.t = "%identity"
27-
external floatArray: array<float> => Js.Json.t = "%identity"
28-
external boolArray: array<bool> => Js.Json.t = "%identity"
29-
}
22+
// Short-hands for zero-cost composite primitives
23+
external jsonDict: Js.Dict.t<Js.Json.t> => Js.Json.t = "%identity"
24+
external jsonArray: array<Js.Json.t> => Js.Json.t = "%identity"
25+
external stringArray: array<string> => Js.Json.t = "%identity"
26+
external intArray: array<int> => Js.Json.t = "%identity"
27+
external floatArray: array<float> => Js.Json.t = "%identity"
28+
external boolArray: array<bool> => Js.Json.t = "%identity"
3029

3130
module Unsafe: {
3231
external object: {..} => Js.Json.t = "%identity"

0 commit comments

Comments
 (0)