Skip to content

Commit

Permalink
use Js.Array2 (teamwalnut#285)
Browse files Browse the repository at this point in the history
  • Loading branch information
jfrolich authored Sep 23, 2022
1 parent 4a1fbfe commit 538560e
Show file tree
Hide file tree
Showing 55 changed files with 3,210 additions and 3,500 deletions.
27 changes: 12 additions & 15 deletions rescript-runtime/graphql_ppx_runtime.ml
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,21 @@ let rec deepMerge (json1 : Js.Json.t) (json2 : Js.Json.t) =
with
| (_, true, _), (_, true, _) ->
(Obj.magic
(Js.Array.mapi
(fun el1 idx ->
let el2 = Js.Array.unsafe_get (Obj.magic json2) idx in
match Js.typeof el2 = "object" with
| true -> deepMerge el1 el2
| false -> el2)
(Obj.magic json1))
(Js.Array2.mapi (Obj.magic json1) (fun el1 idx ->
let el2 = Js.Array2.unsafe_get (Obj.magic json2) idx in
match Js.typeof el2 = "object" with
| true -> deepMerge el1 el2
| false -> el2))
: Js.Json.t)
| (false, false, true), (false, false, true) ->
let obj1 = clone (Obj.magic json1) in
let obj2 = Obj.magic json2 in
Js.Dict.keys obj2
|> Js.Array.forEach (fun key ->
let existingVal = (Js.Dict.unsafeGet obj1 key : Js.Json.t) in
let newVal = (Js.Dict.unsafeGet obj2 key : Js.Json.t) in
Js.Dict.set obj1 key
(match Js.typeof existingVal <> "object" with
| true -> newVal
| false -> Obj.magic (deepMerge existingVal newVal)));
Js.Array2.forEach (Js.Dict.keys obj2) (fun key ->
let existingVal = (Js.Dict.unsafeGet obj1 key : Js.Json.t) in
let newVal = (Js.Dict.unsafeGet obj2 key : Js.Json.t) in
Js.Dict.set obj1 key
(match Js.typeof existingVal <> "object" with
| true -> newVal
| false -> Obj.magic (deepMerge existingVal newVal)));
Obj.magic obj1
| (_, _, _), (_, _, _) -> json2
Original file line number Diff line number Diff line change
Expand Up @@ -285,22 +285,22 @@ function parse$3(value) {
function serialize$3(value) {
var value$1 = value.users;
var users = value$1.map(function (value) {
var value$1 = value.id;
var value$2 = value.__typename;
var value$3 = value.fragment;
var value$1 = value.fragment;
var tmp;
if (value$3.NAME === "AdminUser") {
var value$4 = value$3.VAL.id;
if (value$1.NAME === "AdminUser") {
var value$2 = value$1.VAL.id;
tmp = {
__typename: "AdminUser",
id: value$4
id: value$2
};
} else {
tmp = {};
}
var value$3 = value.id;
var value$4 = value.__typename;
return [tmp].reduce(deepMerge, {
__typename: value$2,
id: value$1
__typename: value$4,
id: value$3
});
});
return {
Expand Down
52 changes: 23 additions & 29 deletions snapshot_tests/operations/expected/apollo/generate/comment.re.txt
Original file line number Diff line number Diff line change
Expand Up @@ -141,18 +141,16 @@ function back to the original JSON compatible data */
Js.Nullable.return(
(
a =>
Js.Array.map(
b =>
(
a =>
switch (a) {
| None => Js.Nullable.undefined
| Some(b) => Js.Nullable.return((a => a)(b))
}
)(
b,
),
a,
Js.Array2.map(a, b =>
(
a =>
switch (a) {
| None => Js.Nullable.undefined
| Some(b) => Js.Nullable.return((a => a)(b))
}
)(
b,
)
)
)(
b,
Expand Down Expand Up @@ -203,23 +201,19 @@ function back to the original JSON compatible data */
Js.Nullable.return(
(
a =>
Js.Array.map(
b =>
(
a =>
switch (a) {
| None => Js.Nullable.undefined
| Some(b) =>
Js.Nullable.return(
(a => serializeInputObjectEmbeddedInput(a))(
b,
),
)
}
)(
b,
),
a,
Js.Array2.map(a, b =>
(
a =>
switch (a) {
| None => Js.Nullable.undefined
| Some(b) =>
Js.Nullable.return(
(a => serializeInputObjectEmbeddedInput(a))(b),
)
}
)(
b,
)
)
)(
b,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,37 +90,35 @@ function back to the original JSON compatible data */
switch (Js.toOption(value)) {
| Some(value) =>
Some(
value
|> Js.Array.map(value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
),
Js.Array2.map(value, value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
),
)
| None => None
};
},
nullableOfNonNullable: {
let value = (value: Raw.t_lists).nullableOfNonNullable;
switch (Js.toOption(value)) {
| Some(value) => Some(value |> Js.Array.map(value => value))
| Some(value) => Some(Js.Array2.map(value, value => value))
| None => None
};
},
nonNullableOfNullable: {
let value = (value: Raw.t_lists).nonNullableOfNullable;
value
|> Js.Array.map(value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
);
Js.Array2.map(value, value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
);
},
nonNullableOfNonNullable: {
let value = (value: Raw.t_lists).nonNullableOfNonNullable;
value |> Js.Array.map(value => value);
Js.Array2.map(value, value => value);
},
}: t_lists
);
Expand All @@ -136,23 +134,22 @@ function back to the original JSON compatible data */
{
let nonNullableOfNonNullable = {
let value = (value: t_lists).nonNullableOfNonNullable;
value |> Js.Array.map(value => value);
Js.Array2.map(value, value => value);
}
and nonNullableOfNullable = {
let value = (value: t_lists).nonNullableOfNullable;
value
|> Js.Array.map(value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
);
Js.Array2.map(value, value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
);
}
and nullableOfNonNullable = {
let value = (value: t_lists).nullableOfNonNullable;
switch (value) {
| Some(value) =>
Js.Nullable.return(value |> Js.Array.map(value => value))
Js.Nullable.return(Js.Array2.map(value, value => value))
| None => Js.Nullable.null
};
}
Expand All @@ -161,13 +158,12 @@ function back to the original JSON compatible data */
switch (value) {
| Some(value) =>
Js.Nullable.return(
value
|> Js.Array.map(value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
),
Js.Array2.map(value, value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
),
)
| None => Js.Nullable.null
};
Expand Down Expand Up @@ -270,37 +266,35 @@ function back to the original JSON compatible data */
switch (Js.toOption(value)) {
| Some(value) =>
Some(
value
|> Js.Array.map(value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
),
Js.Array2.map(value, value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
),
)
| None => None
};
},
nullableOfNonNullable: {
let value = (value: Raw.t_lists).nullableOfNonNullable;
switch (Js.toOption(value)) {
| Some(value) => Some(value |> Js.Array.map(value => value))
| Some(value) => Some(Js.Array2.map(value, value => value))
| None => None
};
},
nonNullableOfNullable: {
let value = (value: Raw.t_lists).nonNullableOfNullable;
value
|> Js.Array.map(value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
);
Js.Array2.map(value, value =>
switch (Js.toOption(value)) {
| Some(value) => Some(value)
| None => None
}
);
},
nonNullableOfNonNullable: {
let value = (value: Raw.t_lists).nonNullableOfNonNullable;
value |> Js.Array.map(value => value);
Js.Array2.map(value, value => value);
},
}: t_lists
);
Expand All @@ -316,23 +310,22 @@ function back to the original JSON compatible data */
{
let nonNullableOfNonNullable = {
let value = (value: t_lists).nonNullableOfNonNullable;
value |> Js.Array.map(value => value);
Js.Array2.map(value, value => value);
}
and nonNullableOfNullable = {
let value = (value: t_lists).nonNullableOfNullable;
value
|> Js.Array.map(value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
);
Js.Array2.map(value, value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
);
}
and nullableOfNonNullable = {
let value = (value: t_lists).nullableOfNonNullable;
switch (value) {
| Some(value) =>
Js.Nullable.return(value |> Js.Array.map(value => value))
Js.Nullable.return(Js.Array2.map(value, value => value))
| None => Js.Nullable.null
};
}
Expand All @@ -341,13 +334,12 @@ function back to the original JSON compatible data */
switch (value) {
| Some(value) =>
Js.Nullable.return(
value
|> Js.Array.map(value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
),
Js.Array2.map(value, value =>
switch (value) {
| Some(value) => Js.Nullable.return(value)
| None => Js.Nullable.null
}
),
)
| None => Js.Nullable.null
};
Expand Down
Loading

0 comments on commit 538560e

Please sign in to comment.