Generate Records › interface.re › output [@ocaml.ppx.context { tool_name: \"migrate_driver\", include_dirs: [], load_path: [], open_modules: [], for_package: None, debug: false, use_threads: false, use_vmthreads: false, recursive_types: false, principal: false, transparent_modules: false, unboxed_types: false, unsafe_string: false, cookies: [], } ]; module GraphQL_PPX = { let deepMerge = (json1, _) => json1; }; module QueryWithOnlyFragments: { module Raw: { type t_users_User_AnonymousUser = { __typename: string, id: string, anonymousId: int, }; type t_users_User_AdminUser = { __typename: string, id: string, name: string, }; type t_users_User; type t = {users: array(t_users_User)}; type t_variables = unit; }; type t_users_User_AnonymousUser = { id: string, anonymousId: int, }; type t_users_User_AdminUser = { id: string, name: string, }; type t_users_User = [ | `UnspecifiedFragment(string) | `AnonymousUser(t_users_User_AnonymousUser) | `AdminUser(t_users_User_AdminUser) ]; type t = {users: array(t_users_User)}; type t_variables = unit; /** The GraphQL query */ let query: string; /** Parse the JSON-compatible GraphQL data to ReasonML data types */ let parse: Raw.t => t; /** Serialize the ReasonML GraphQL data that was parsed using the parse function back to the original JSON compatible data */ let serialize: t => Raw.t; let serializeVariables: unit => unit; let makeVariables: unit => unit; let makeDefaultVariables: unit => t_variables; external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; } = { [@ocaml.warning \"-32\"]; module Raw = { type t_users_User_AnonymousUser = { __typename: string, id: string, anonymousId: int, }; type t_users_User_AdminUser = { __typename: string, id: string, name: string, }; type t_users_User; type t = {users: array(t_users_User)}; type t_variables = unit; }; type t_users_User_AnonymousUser = { id: string, anonymousId: int, }; type t_users_User_AdminUser = { id: string, name: string, }; type t_users_User = [ | `UnspecifiedFragment(string) | `AnonymousUser(t_users_User_AnonymousUser) | `AdminUser(t_users_User_AdminUser) ]; type t = {users: array(t_users_User)}; type t_variables = unit; let query = \"query {\\nusers {\\n__typename\\n...on AdminUser {\\nid \\nname \\n}\\n\\n...on AnonymousUser {\\nid \\nanonymousId \\n}\\n\\n}\\n\\n}\\n\"; let parse: Raw.t => t = (value) => ( { users: { let value = (value: Raw.t).users; value |> Js.Array.map(value => let typename: string = Obj.magic( Js.Dict.unsafeGet(Obj.magic(value), \"__typename\"), ); ( switch (typename) { | \"AnonymousUser\" => `AnonymousUser( { let value: Raw.t_users_User_AnonymousUser = Obj.magic(value); ( { id: { let value = (value: Raw.t_users_User_AnonymousUser).id; value; }, anonymousId: { let value = (value: Raw.t_users_User_AnonymousUser). anonymousId; value; }, }: t_users_User_AnonymousUser ); }, ) | \"AdminUser\" => `AdminUser( { let value: Raw.t_users_User_AdminUser = Obj.magic(value); ( { id: { let value = (value: Raw.t_users_User_AdminUser).id; value; }, name: { let value = (value: Raw.t_users_User_AdminUser).name; value; }, }: t_users_User_AdminUser ); }, ) | _ => `UnspecifiedFragment(typename) }: t_users_User ); ); }, }: t ); let serialize: t => Raw.t = (value) => ( { let users = { let value = (value: t).users; value |> Js.Array.map(value => switch (value) { | `AnonymousUser(value) => ( Obj.magic( { let anonymousId = { let value = (value: t_users_User_AnonymousUser).anonymousId; value; } and id = { let value = (value: t_users_User_AnonymousUser).id; value; }; {__typename: \"AnonymousUser\", id, anonymousId}; }: Raw.t_users_User_AnonymousUser, ): Raw.t_users_User ) | `AdminUser(value) => ( Obj.magic( { let name = { let value = (value: t_users_User_AdminUser).name; value; } and id = { let value = (value: t_users_User_AdminUser).id; value; }; {__typename: \"AdminUser\", id, name}; }: Raw.t_users_User_AdminUser, ): Raw.t_users_User ) | `UnspecifiedFragment(_) => ( Obj.magic(Js.Dict.empty()): Raw.t_users_User ) } ); }; {users: users}; }: Raw.t ); let serializeVariables = () => (); let makeVariables = () => (); let makeDefaultVariables = () => makeVariables(); external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; }; module QueryWithTypename: { module Raw: { type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User; type t = {users: array(t_users_User)}; type t_variables = unit; }; type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User = [ | `UnspecifiedFragment(string) | `AdminUser(t_users_User_AdminUser) ]; type t = {users: array(t_users_User)}; type t_variables = unit; /** The GraphQL query */ let query: string; /** Parse the JSON-compatible GraphQL data to ReasonML data types */ let parse: Raw.t => t; /** Serialize the ReasonML GraphQL data that was parsed using the parse function back to the original JSON compatible data */ let serialize: t => Raw.t; let serializeVariables: unit => unit; let makeVariables: unit => unit; let makeDefaultVariables: unit => t_variables; external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; } = { [@ocaml.warning \"-32\"]; module Raw = { type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User; type t = {users: array(t_users_User)}; type t_variables = unit; }; type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User = [ | `UnspecifiedFragment(string) | `AdminUser(t_users_User_AdminUser) ]; type t = {users: array(t_users_User)}; type t_variables = unit; let query = \"query {\\nusers {\\n__typename\\n...on AdminUser {\\n__typename \\nid \\n}\\n\\n}\\n\\n}\\n\"; let parse: Raw.t => t = (value) => ( { users: { let value = (value: Raw.t).users; value |> Js.Array.map(value => let typename: string = Obj.magic( Js.Dict.unsafeGet(Obj.magic(value), \"__typename\"), ); ( switch (typename) { | \"AdminUser\" => `AdminUser( { let value: Raw.t_users_User_AdminUser = Obj.magic(value); ( { __typename: { let value = (value: Raw.t_users_User_AdminUser).__typename; value; }, id: { let value = (value: Raw.t_users_User_AdminUser).id; value; }, }: t_users_User_AdminUser ); }, ) | _ => `UnspecifiedFragment(typename) }: t_users_User ); ); }, }: t ); let serialize: t => Raw.t = (value) => ( { let users = { let value = (value: t).users; value |> Js.Array.map(value => switch (value) { | `AdminUser(value) => ( Obj.magic( { let id = { let value = (value: t_users_User_AdminUser).id; value; } and __typename = { let value = (value: t_users_User_AdminUser).__typename; value; }; {__typename: \"AdminUser\", id}; }: Raw.t_users_User_AdminUser, ): Raw.t_users_User ) | `UnspecifiedFragment(_) => ( Obj.magic(Js.Dict.empty()): Raw.t_users_User ) } ); }; {users: users}; }: Raw.t ); let serializeVariables = () => (); let makeVariables = () => (); let makeDefaultVariables = () => makeVariables(); external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; }; module QueryWithMixedFragments: { module Raw: { type t_users_User_AnonymousUser = { __typename: string, anonymousId: int, }; type t_users_User_AdminUser = { __typename: string, name: string, }; type t_users_User; type t_users; type t = {users: array(t_users)}; type t_variables = unit; }; type t_users_User_AnonymousUser = {anonymousId: int}; type t_users_User_AdminUser = {name: string}; type t_users_User = [ | `UnspecifiedFragment(string) | `AnonymousUser(t_users_User_AnonymousUser) | `AdminUser(t_users_User_AdminUser) ]; type t_users = { fragment: t_users_User, id: string, }; type t = {users: array(t_users)}; type t_variables = unit; /** The GraphQL query */ let query: string; /** Parse the JSON-compatible GraphQL data to ReasonML data types */ let parse: Raw.t => t; /** Serialize the ReasonML GraphQL data that was parsed using the parse function back to the original JSON compatible data */ let serialize: t => Raw.t; let serializeVariables: unit => unit; let makeVariables: unit => unit; let makeDefaultVariables: unit => t_variables; external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; } = { [@ocaml.warning \"-32\"]; module Raw = { type t_users_User_AnonymousUser = { __typename: string, anonymousId: int, }; type t_users_User_AdminUser = { __typename: string, name: string, }; type t_users_User; type t_users; type t = {users: array(t_users)}; type t_variables = unit; }; type t_users_User_AnonymousUser = {anonymousId: int}; type t_users_User_AdminUser = {name: string}; type t_users_User = [ | `UnspecifiedFragment(string) | `AnonymousUser(t_users_User_AnonymousUser) | `AdminUser(t_users_User_AdminUser) ]; type t_users = { fragment: t_users_User, id: string, }; type t = {users: array(t_users)}; type t_variables = unit; let query = \"query {\\nusers {\\n__typename\\nid \\n...on AdminUser {\\nname \\n}\\n\\n...on AnonymousUser {\\nanonymousId \\n}\\n\\n}\\n\\n}\\n\"; let parse: Raw.t => t = (value) => ( { users: { let value = (value: Raw.t).users; value |> Js.Array.map((value) => ( { fragment: { let typename: string = Obj.magic( Js.Dict.unsafeGet(Obj.magic(value), \"__typename\"), ); ( switch (typename) { | \"AnonymousUser\" => `AnonymousUser( { let value: Raw.t_users_User_AnonymousUser = Obj.magic(value); ( { anonymousId: { let value = (value: Raw.t_users_User_AnonymousUser). anonymousId; value; }, }: t_users_User_AnonymousUser ); }, ) | \"AdminUser\" => `AdminUser( { let value: Raw.t_users_User_AdminUser = Obj.magic(value); ( { name: { let value = (value: Raw.t_users_User_AdminUser).name; value; }, }: t_users_User_AdminUser ); }, ) | _ => `UnspecifiedFragment(typename) }: t_users_User ); }, id: { let value = Obj.magic(Js.Dict.unsafeGet(Obj.magic(value), \"id\")); value; }, }: t_users ) ); }, }: t ); let serialize: t => Raw.t = (value) => ( { let users = { let value = (value: t).users; value |> Js.Array.map((value) => ( Obj.magic( Js.Array.reduce( GraphQL_PPX.deepMerge, Obj.magic( { let id = { let value = (value: t_users).id; value; }; {\"id\": id}; }, ): Js.Json.t, [| { let value = (value: t_users).fragment; ( Obj.magic( switch (value) { | `AnonymousUser(value) => ( Obj.magic( { let anonymousId = { let value = (value: t_users_User_AnonymousUser). anonymousId; value; }; { __typename: \"AnonymousUser\", anonymousId, }; }: Raw.t_users_User_AnonymousUser, ): Raw.t_users_User ) | `AdminUser(value) => ( Obj.magic( { let name = { let value = (value: t_users_User_AdminUser).name; value; }; {__typename: \"AdminUser\", name}; }: Raw.t_users_User_AdminUser, ): Raw.t_users_User ) | `UnspecifiedFragment(_) => ( Obj.magic(Js.Dict.empty()): Raw.t_users_User ) }, ): Js.Json.t ); }, |], ), ): Raw.t_users ) ); }; {users: users}; }: Raw.t ); let serializeVariables = () => (); let makeVariables = () => (); let makeDefaultVariables = () => makeVariables(); external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; }; module MixedQueryWithTypename: { module Raw: { type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User; type t_users; type t = {users: array(t_users)}; type t_variables = unit; }; type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User = [ | `UnspecifiedFragment(string) | `AdminUser(t_users_User_AdminUser) ]; type t_users = { fragment: t_users_User, __typename: string, id: string, }; type t = {users: array(t_users)}; type t_variables = unit; /** The GraphQL query */ let query: string; /** Parse the JSON-compatible GraphQL data to ReasonML data types */ let parse: Raw.t => t; /** Serialize the ReasonML GraphQL data that was parsed using the parse function back to the original JSON compatible data */ let serialize: t => Raw.t; let serializeVariables: unit => unit; let makeVariables: unit => unit; let makeDefaultVariables: unit => t_variables; external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; } = { [@ocaml.warning \"-32\"]; module Raw = { type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User; type t_users; type t = {users: array(t_users)}; type t_variables = unit; }; type t_users_User_AdminUser = { __typename: string, id: string, }; type t_users_User = [ | `UnspecifiedFragment(string) | `AdminUser(t_users_User_AdminUser) ]; type t_users = { fragment: t_users_User, __typename: string, id: string, }; type t = {users: array(t_users)}; type t_variables = unit; let query = \"query {\\nusers {\\n__typename\\nid \\n__typename \\n...on AdminUser {\\n__typename \\nid \\n}\\n\\n}\\n\\n}\\n\"; let parse: Raw.t => t = (value) => ( { users: { let value = (value: Raw.t).users; value |> Js.Array.map((value) => ( { fragment: { let typename: string = Obj.magic( Js.Dict.unsafeGet(Obj.magic(value), \"__typename\"), ); ( switch (typename) { | \"AdminUser\" => `AdminUser( { let value: Raw.t_users_User_AdminUser = Obj.magic(value); ( { __typename: { let value = (value: Raw.t_users_User_AdminUser). __typename; value; }, id: { let value = (value: Raw.t_users_User_AdminUser).id; value; }, }: t_users_User_AdminUser ); }, ) | _ => `UnspecifiedFragment(typename) }: t_users_User ); }, __typename: { let value = Obj.magic( Js.Dict.unsafeGet(Obj.magic(value), \"__typename\"), ); value; }, id: { let value = Obj.magic(Js.Dict.unsafeGet(Obj.magic(value), \"id\")); value; }, }: t_users ) ); }, }: t ); let serialize: t => Raw.t = (value) => ( { let users = { let value = (value: t).users; value |> Js.Array.map((value) => ( Obj.magic( Js.Array.reduce( GraphQL_PPX.deepMerge, Obj.magic( { let id = { let value = (value: t_users).id; value; } and __typename = { let value = (value: t_users).__typename; value; }; {\"__typename\": __typename, \"id\": id}; }, ): Js.Json.t, [| { let value = (value: t_users).fragment; ( Obj.magic( switch (value) { | `AdminUser(value) => ( Obj.magic( { let id = { let value = (value: t_users_User_AdminUser).id; value; } and __typename = { let value = (value: t_users_User_AdminUser). __typename; value; }; {__typename: \"AdminUser\", id}; }: Raw.t_users_User_AdminUser, ): Raw.t_users_User ) | `UnspecifiedFragment(_) => ( Obj.magic(Js.Dict.empty()): Raw.t_users_User ) }, ): Js.Json.t ); }, |], ), ): Raw.t_users ) ); }; {users: users}; }: Raw.t ); let serializeVariables = () => (); let makeVariables = () => (); let makeDefaultVariables = () => makeVariables(); external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; }; module QueryWithoutFragments: { module Raw: { type t_users = {id: string}; type t = {users: array(t_users)}; type t_variables = unit; }; type t_users = {id: string}; type t = {users: array(t_users)}; type t_variables = unit; /** The GraphQL query */ let query: string; /** Parse the JSON-compatible GraphQL data to ReasonML data types */ let parse: Raw.t => t; /** Serialize the ReasonML GraphQL data that was parsed using the parse function back to the original JSON compatible data */ let serialize: t => Raw.t; let serializeVariables: unit => unit; let makeVariables: unit => unit; let makeDefaultVariables: unit => t_variables; external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; } = { [@ocaml.warning \"-32\"]; module Raw = { type t_users = {id: string}; type t = {users: array(t_users)}; type t_variables = unit; }; type t_users = {id: string}; type t = {users: array(t_users)}; type t_variables = unit; let query = \"query {\\nusers {\\n__typename\\nid \\n}\\n\\n}\\n\"; let parse: Raw.t => t = (value) => ( { users: { let value = (value: Raw.t).users; value |> Js.Array.map((value) => ( { id: { let value = (value: Raw.t_users).id; value; }, }: t_users ) ); }, }: t ); let serialize: t => Raw.t = (value) => ( { let users = { let value = (value: t).users; value |> Js.Array.map((value) => ( { let id = { let value = (value: t_users).id; value; }; {id: id}; }: Raw.t_users ) ); }; {users: users}; }: Raw.t ); let serializeVariables = () => (); let makeVariables = () => (); let makeDefaultVariables = () => makeVariables(); external unsafe_fromJson: Js.Json.t => Raw.t = \"%identity\"; external toJson: Raw.t => Js.Json.t = \"%identity\"; external variablesToJson: Raw.t_variables => Js.Json.t = \"%identity\"; };