[{"name":"GraphQL.Decode","comment":"\n\n@docs Decoder\n\n\n## **Learning and troubleshooting**\n\nWhen I first got started with JSON decoders, I had a hard time visualizing what was going on.\nFor that reason, this module comes with a [`test`](#test) function to help you\neasily verify your code is behaving the way you expect.\n\nThis is inspired by the `elm/json` package's [`decodeString`](https://package.elm-lang.org/packages/elm/json/latest/Json-Decode#decodeString)\nfunction, which is great for testing JSON decoders when you get stuck!\n\n@docs test\n\n\n## **Scalars**\n\nIn GraphQL, [scalars](https://graphql.org/learn/schema/#scalar-types) are strings, numbers,\nIDs, and other basic primitives that your API can send. For the five built-in scalars, these functions are provided below.\n\nSee the [`scalar`](#scalar) function to work with custom scalars specific to your API.\n\n@docs string, float, int, bool, id\n@docs scalar\n\n\n## **Enums**\n\n@docs enum\n\n\n## **Objects**\n\n@docs object, field\n\n\n### **Lists & Nullable Fields**\n\n@docs maybe, list\n\n\n## **Interfaces & Union Types**\n\n\n### **❗️ Always include \\_\\_typename**\n\nInterfaces and union type decoders require the `__typename` field in the selection. Without it,\nElm won't be able to match on the typename provided.\n\nHere's an example from the official GraphQL documentation:\n\n```graphql\n{\n  search(text: \"an\") {\n    __typename\n    ... on Human {\n      name\n      height\n    }\n    ... on Droid {\n      name\n      primaryFunction\n    }\n    ... on Starship {\n      name\n      length\n    }\n  }\n}\n```\n\nBecause the `hero` query returns an `interface`, you should always include `__typename` in your selection set.\nThis will allow your Elm frontend to know which types came back:\n\n```json\n{\n  \"data\": {\n    \"search\": [\n      {\n        \"__typename\": \"Human\",\n        \"name\": \"Han Solo\",\n        \"height\": 1.8\n      },\n      {\n        \"__typename\": \"Human\",\n        \"name\": \"Leia Organa\",\n        \"height\": 1.5\n      },\n      {\n        \"__typename\": \"Starship\",\n        \"name\": \"TIE Advanced x1\",\n        \"length\": 9.2\n      }\n    ]\n  }\n}\n```\n\n@docs union, interface\n@docs Variant, variant\n\n\n## **Internals**\n\nThese functions are used internally by GraphQL.Http, and you won't need them in your projects.\n\n@docs toJsonDecoder\n\n","unions":[{"name":"Decoder","comment":" When you make a GraphQL request, you'll get a JSON response like this one:\n\n```json\n{\n  \"data\": {\n    \"hero\": {\n      \"name\": \"R2-D2\",\n      \"appearsIn\": [\n        \"NEWHOPE\",\n        \"EMPIRE\",\n        \"JEDI\"\n      ]\n    }\n  }\n}\n```\n\nThis `Decoder` type represents a value that knows how to convert a raw JSON response into standard Elm values that can be used in your Elm application.\n\n","args":["value"],"cases":[]},{"name":"Variant","comment":" A type that represents a custom type variant on a union type or interface. These are used with\n[`union`](#union) or [`interface`](#interface) in the examples above.\n","args":["value"],"cases":[]}],"aliases":[],"values":[{"name":"bool","comment":" A decoder for the built-in `Boolean` scalar.\n\n    import GraphQL.Decode\n\n    GraphQL.Decode.test\n        { decoder = GraphQL.Decode.bool\n        , json = \"\"\" true \"\"\"\n        }\n        == Ok True\n\n","type":"GraphQL.Decode.Decoder Basics.Bool"},{"name":"enum","comment":" A decoder for handling [enum values](https://graphql.org/learn/schema/#enumeration-types). It allows you to specify a list of allowed enums that can\ncome back with a certain request.\n\nTo prevent code duplication, we recommend defining one `decoder` for each enum in a separate Elm module,\nlike `GraphQL.Enum.Episode`. Here's how you can use this function to define a decoder for\nthe `Episode` enum type:\n\n    import GraphQL.Decode exposing (Decoder)\n\n    type Episode\n        = NewHope\n        | EmpireStrikesBack\n        | ReturnOfTheJedi\n\n    decoder : Decoder Episode\n    decoder =\n        GraphQL.Decode.enum\n            [ ( \"NEWHOPE\", NewHope )\n            , ( \"EMPIRE\", EmpireStrikesBack )\n            , ( \"RETURN\", ReturnOfTheJedi )\n            ]\n\n**Note:** If an enum is missing from that list, this package will return a\nJSON decoding error letting you know which enum variant was missing.\n\n","type":"List.List ( String.String, enum ) -> GraphQL.Decode.Decoder enum"},{"name":"field","comment":" When used with [`object`](#object), this function allows you to\nadd fields to an object.\n\n**Note:** The order of the fields in the `type alias` need to match\nthe order you add the fields in your decoder.\n\n    import GraphQL.Decode exposing (Decoder)\n    import GraphQL.Enum.Episode\n\n    type alias Jedi =\n        { name : String\n        , appearsIn : List GraphQL.Enum.Episode\n        }\n\n    decoder : Decoder Person\n    decoder =\n        GraphQL.Decode.object Person\n            |> GraphQL.Decode.field\n                { name = \"name\"\n                , decoder = GraphQL.Decode.string\n                }\n            |> GraphQL.Decode.field\n                { name = \"appearsIn\"\n                , decoder =\n                    GraphQL.Decode.list\n                        GraphQL.Enum.Episode.decoder\n                }\n\n","type":"{ name : String.String, decoder : GraphQL.Decode.Decoder field } -> GraphQL.Decode.Decoder (field -> output) -> GraphQL.Decode.Decoder output"},{"name":"float","comment":" A decoder for the built-in `Float` scalar.\n\n    import GraphQL.Decode\n\n    GraphQL.Decode.test\n        { decoder = GraphQL.Decode.float\n        , json = \"\"\" 1.25 \"\"\"\n        }\n        == Ok 1.25\n\n","type":"GraphQL.Decode.Decoder Basics.Float"},{"name":"id","comment":" A decoder for the built-in `ID` scalar.\n\nUses [GraphQL.Scalar.Id](./GraphQL-Scalar-Id) as a way to prevent\nmixing up `String` and `Id` values.\n\n    import GraphQL.Decode\n\n    -- Works with JSON strings\n    GraphQL.Decode.test\n        { decoder = GraphQL.Decode.id\n        , json = \"\"\" \"abc\" \"\"\"\n        }\n        == Ok (GraphQL.Scalar.Id.Id \"abc\")\n\n    -- Works with JSON numbers\n    test\n        { decoder = id\n        , json = \"\"\" 12345 \"\"\"\n        }\n        == Ok (Id \"12345\")\n\n","type":"GraphQL.Decode.Decoder GraphQL.Scalar.Id.Id"},{"name":"int","comment":" A decoder for the built-in `Int` scalar.\n\n    import GraphQL.Decode\n\n    GraphQL.Decode.test\n        { decoder = GraphQL.Decode.int\n        , json = \"\"\" 9000 \"\"\"\n        }\n        == Ok 9000\n\n","type":"GraphQL.Decode.Decoder Basics.Int"},{"name":"interface","comment":" Decoder for [interfaces](https://graphql.org/learn/schema/#interfaces) that allow you to select extra fields. This works alongside the [`variant`](#variant)\nfunction to define which variants you are interested in tracking.\n\n    import GraphQL.Decode exposing (Decoder)\n\n    type HeroInterface\n        = On_Human Human\n        | On_Droid Droid\n\n    decoder : Decoder SearchUnion\n    decoder =\n        GraphQL.Decode.interface\n            [ GraphQL.Decode.variant\n                { typename = \"Human\"\n                , onVariant = On_Human\n                , decoder = humanDecoder\n                }\n            , GraphQL.Decode.variant\n                { typename = \"Droid\"\n                , onVariant = On_Droid\n                , decoder = droidDecoder\n                }\n            ]\n\nYou can see the [`union`](#union) example to understand how to\nmake `humanDecoder` or `droidDecoder`. Their implementations are identical!\n\n❗️ [See the important note about using `__typename`](#-always-include-_-_typename-) to prevent issues\n\n","type":"List.List (GraphQL.Decode.Variant interface) -> GraphQL.Decode.Decoder interface"},{"name":"list","comment":" Use this function to tell an existing decoder that we expect a list of values,\nrather than a single value:\n\n    import GraphQL.Decode exposing (Decoder)\n\n    stringDecoder : Decoder String\n    stringDecoder =\n        GraphQL.Decoder.string\n\n    listOfStringDecoder : Decoder (List String)\n    listOfStringDecoder =\n        GraphQL.Decoder.list GraphQL.Decoder.string\n\n","type":"GraphQL.Decode.Decoder value -> GraphQL.Decode.Decoder (List.List value)"},{"name":"maybe","comment":" Use this function to tell an existing decoder that we expect a nullable value,\nwhich might not guaranteed to be available:\n\n    import GraphQL.Decode exposing (Decoder)\n\n    stringDecoder : Decoder String\n    stringDecoder =\n        GraphQL.Decoder.string\n\n    nullableStringDecoder : Decoder (Maybe String)\n    nullableStringDecoder =\n        GraphQL.Decoder.maybe GraphQL.Decoder.string\n\n","type":"GraphQL.Decode.Decoder value -> GraphQL.Decode.Decoder (Maybe.Maybe value)"},{"name":"object","comment":" A decoder for working with [object types](https://graphql.org/learn/schema/#object-types-and-fields).\nThis function works in conjunction with [`field`](#field) to allow you to safely decode one field at a time.\n\n    import GraphQL.Decode exposing (Decoder)\n\n    type alias Person =\n        { id : Id\n        , fullName : String\n        }\n\n    decoder : Decoder Person\n    decoder =\n        GraphQL.Decode.object Person\n            |> GraphQL.Decode.field\n                { name = \"id\"\n                , decoder = GraphQL.Decode.id\n                }\n            |> GraphQL.Decode.field\n                { name = \"fullName\"\n                , decoder = GraphQL.Decode.string\n                }\n\n","type":"(field -> object) -> GraphQL.Decode.Decoder (field -> object)"},{"name":"scalar","comment":" GraphQL allows APIs to define custom scalar values, like `Date` or `Currency`. This function\nallows you to work with those custom values.\n\nHere's an example of using this function to work with a `DateTime` type. We recommend defining each custom scalar\nin a separate Elm module, like `GraphQL.Scalar.DateTime`:\n\n    -- module GraphQL.Scalar.DateTime exposing\n    --     ( DateTime\n    --     , decoder, encode\n    --     )\n\n\n    import GraphQL.Decode exposing (Decoder)\n    import Iso8601\n    import Time\n\n    type alias DateTime =\n        Time.Posix\n\n    decoder : Decoder DateTime\n    decoder =\n        GraphQL.Decode.scalar Iso8601.decoder\n\nThe snippet above uses [`elm/time`](https://package.elm-lang.org/packages/elm/time) and [`rtfeldman/elm-iso8601-date-strings`](https://package.elm-lang.org/packages/rtfeldman/elm-iso8601-date-strings/latest/Iso8601)\nto convert a `String` value from our API into a `Time.Posix` value.\n\n    import GraphQL.Decode\n    import GraphQL.Scalar.DateTime\n\n    GraphQL.Decode.test\n        { decoder = GraphQL.Scalar.DateTime.decoder\n        , value = \"\"\" \"2022-12-26T01:45:56.520Z\" \"\"\"\n        }\n        == Ok (Posix 1672019156520)\n\n","type":"Json.Decode.Decoder scalar -> GraphQL.Decode.Decoder scalar"},{"name":"string","comment":" A decoder for the built-in `String` scalar.\n\n    import GraphQL.Decode\n\n    GraphQL.Decode.test\n        { decoder = GraphQL.Decode.string\n        , json = \"\"\" \"Hello, world!\" \"\"\"\n        }\n        == Ok \"Hello, world!\"\n\n","type":"GraphQL.Decode.Decoder String.String"},{"name":"test","comment":" This function is exposed so you can quickly check if your GraphQL `Decoder` works as you expect\nwith a raw JSON string.\n\n    import GraphQL.Decode\n\n    testResult : Result Http.Error Int\n    testResult =\n        GraphQL.Decode.test\n            { decoder = GraphQL.Decode.int\n            , json = \"\"\" 1000 \"\"\"\"\n            }\n\n","type":"{ decoder : GraphQL.Decode.Decoder value, json : String.String } -> Result.Result Json.Decode.Error value"},{"name":"toJsonDecoder","comment":" ","type":"GraphQL.Decode.Decoder value -> Json.Decode.Decoder value"},{"name":"union","comment":" Decoder for a [union type](https://graphql.org/learn/schema/#union-types). Use this with the [`variant`](#variant) function to select variants by typename:\n\n    import GraphQL.Decode exposing (Decoder)\n\n    type SearchUnion\n        = On_Human Human\n        | On_Droid Droid\n        | On_Starship Starship\n\n    decoder : Decoder SearchUnion\n    decoder =\n        GraphQL.Decode.union\n            [ GraphQL.Decode.variant\n                { typename = \"Human\"\n                , onVariant = On_Human\n                , decoder = humanDecoder\n                }\n            , GraphQL.Decode.variant\n                { typename = \"Droid\"\n                , onVariant = On_Droid\n                , decoder = droidDecoder\n                }\n            , GraphQL.Decode.variant\n                { typename = \"Starship\"\n                , onVariant = On_Starship\n                , decoder = starshipDecoder\n                }\n            ]\n\nEach variant will expect a decoder for the data you expect. This will involve using\nthe [`object`](#object) and [`field`](#field) functions in this module:\n\n    type alias Human =\n        { name : String\n        , height : Int\n        }\n\n    humanDecoder : Decoder Human\n    humanDecoder =\n        GraphQL.Decode.object Human\n            |> GraphQL.Decode.field\n                { name = \"name\"\n                , decoder = GraphQL.Decode.string\n                }\n            |> GraphQL.Decode.field\n                { name = \"height\"\n                , decoder = GraphQL.Decode.int\n                }\n\n    type alias Droid =\n        { name : String\n        , primaryFunction : String\n        }\n\n    droidDecoder : Decoder Droid\n    droidDecoder =\n        GraphQL.Decode.object Droid\n            |> GraphQL.Decode.field\n                { name = \"name\"\n                , decoder = GraphQL.Decode.string\n                }\n            |> GraphQL.Decode.field\n                { name = \"primaryFunction\"\n                , decoder = GraphQL.Decode.string\n                }\n\n    type alias Starship =\n        { name : String\n        , length : Int\n        }\n\n    starshipDecoder : Decoder Starship\n    starshipDecoder =\n        GraphQL.Decode.object Starship\n            |> GraphQL.Decode.field\n                { name = \"name\"\n                , decoder = GraphQL.Decode.string\n                }\n            |> GraphQL.Decode.field\n                { name = \"length\"\n                , decoder = GraphQL.Decode.int\n                }\n\n❗️ [See the important note about using `__typename`](#-always-include-_-_typename-) to prevent issues\n\n","type":"List.List (GraphQL.Decode.Variant union) -> GraphQL.Decode.Decoder union"},{"name":"variant","comment":" A function intended to be used with [`union`](#union) or [`interface`](#interface) for\nselecting specific custom type variants by typename.\n\n    import GraphQL.Decode exposing (Variant)\n\n    type HeroInterface\n        = On_Human Human\n        | On_Droid Droid\n\n    humanVariant : Variant HeroInterface\n    humanVariant =\n        GraphQL.Decode.variant\n            { typename = \"Human\"\n            , onVariant = On_Human\n            , decoder = humanDecoder\n            }\n\n    droidVariant : Variant HeroInterface\n    droidVariant =\n        GraphQL.Decode.variant\n            { typename = \"Droid\"\n            , onVariant = On_Droid\n            , decoder = droidDecoder\n            }\n\n","type":"{ typename : String.String, onVariant : object -> value, decoder : GraphQL.Decode.Decoder object } -> GraphQL.Decode.Variant value"}],"binops":[]},{"name":"GraphQL.Encode","comment":"\n\n@docs Value\n\n\n## **Scalars**\n\n@docs string, float, int, bool, id\n@docs scalar\n\n\n## **Enums**\n\n@docs enum\n\n\n## **Input types**\n\n@docs input\n@docs null\n\n\n## **Internals**\n\nThese functions are used internally by [`GraphQL.Http`](./GraphQL-Http), and you won't need them in your projects\n\n@docs toJson\n\n","unions":[{"name":"Value","comment":" The `Value` type represents a JSON value that will be sent to your GraphQL API.\nWhen you use this with the [`GraphQL.Http`](./GraphQL-Http) module, this is an example\nof what will be sent with your HTTP request:\n\n```json\n{\n    \"variables\": {\n        \"id\": \"123\",\n        \"form\": {\n            \"email\": \"ryan@elm.land\",\n            \"password\": \"secret123\"\n        }\n    }\n}\n```\n\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"bool","comment":" Create a GraphQL input from a `Bool` value:\n\n    import GraphQL.Encode\n\n    isReadingThis : GraphQL.Encode.Value\n    isReadingThis =\n        GraphQL.Encode.bool True\n\n","type":"Basics.Bool -> GraphQL.Encode.Value"},{"name":"enum","comment":" Create a GraphQL input from an enum value. To avoid duplicating code, we recommend\nyou create a separate Elm module per enum, like `GraphQL.Enum.Episode`.\n\nIn that module, you can define your `encode` function in one place:\n\n    -- module GraphQL.Enum.Episode exposing\n    --     ( Episode(..), list\n    --     , decoder, encode\n    --     )\n\n\n    import GraphQL.Encode\n\n    type Episode\n        = NewHope\n        | EmpireStrikesBack\n        | ReturnOfTheJedi\n\n    encode : Episode -> GraphQL.Encode.Value\n    encode episode =\n        GraphQL.Encode.enum\n            { toString = toString\n            , value = episode\n            }\n\n    toString : Episode -> String\n    toString episode =\n        case episode of\n            NewHope ->\n                \"NEWHOPE\"\n\n            EmpireStrikesBack ->\n                \"EMPIRE\"\n\n            ReturnOfTheJedi ->\n                \"RETURN\"\n\n","type":"{ toString : enum -> String.String, value : enum } -> GraphQL.Encode.Value"},{"name":"float","comment":" Create a GraphQL input from a `Float` value:\n\n    import GraphQL.Encode\n\n    score : GraphQL.Encode.Value\n    score =\n        GraphQL.Encode.float 0.99\n\n","type":"Basics.Float -> GraphQL.Encode.Value"},{"name":"id","comment":" Create a GraphQL input from a `Id` value:\n\n    import GraphQL.Encode\n    import GraphQL.Scalar.Id exposing (Id)\n\n    userId : Id\n    userId =\n        GraphQL.Scalar.Id.fromInt 1203\n\n    isReadingThis : GraphQL.Encode.Value\n    isReadingThis =\n        GraphQL.Encode.id userId\n\n","type":"GraphQL.Scalar.Id.Id -> GraphQL.Encode.Value"},{"name":"input","comment":" GraphQL allows the API to define [input types](https://graphql.org/learn/schema/#input-types). These allow you to group\nyour inputs into an object, like this:\n\n    import GraphQL.Encode\n\n    reviewInputValue : GraphQL.Encode.Value\n    reviewInputValue =\n        GraphQL.Encode.input\n            [ ( \"stars\"\n              , GraphQL.Encode.int 10\n              )\n            , ( \"commentary\"\n              , GraphQL.Encode.int \"Would eat again!\"\n              )\n            ]\n\n","type":"List.List ( String.String, GraphQL.Encode.Value ) -> GraphQL.Encode.Value"},{"name":"int","comment":" Create a GraphQL input from a `Int` value:\n\n    import GraphQL.Encode\n\n    age : GraphQL.Encode.Value\n    age =\n        GraphQL.Encode.int 62\n\n","type":"Basics.Int -> GraphQL.Encode.Value"},{"name":"null","comment":" Send a `null` value to a GraphQL API. This is commonly used by mutations\nto mark a field as removed.\n\n    import GraphQL.Encode\n\n    profileInputValue : GraphQL.Encode.Value\n    profileInputValue =\n        GraphQL.Encode.input\n            [ ( \"name\"\n              , GraphQL.Encode.string \"Ryan\"\n              )\n            , ( \"bio\"\n              , GraphQL.Encode.null\n              )\n            ]\n\n","type":"GraphQL.Encode.Value"},{"name":"scalar","comment":" Here's an example of using this function to work with a `DateTime` type. We recommend defining each custom scalar\nin a separate Elm module, like `GraphQL.Scalar.DateTime`:\n\n    -- module GraphQL.Scalar.DateTime exposing\n    --     ( DateTime\n    --     , decoder, encode\n    --     )\n\n\n    import GraphQL.Encode\n    import Iso8601\n    import Time\n\n    type alias DateTime =\n        Time.Posix\n\n    encode : DateTime -> GraphQL.Encode.Value\n    encode dateTime =\n        GraphQL.Encode.scalar\n            { toJson = Iso8601.encode\n            , value = dateTime\n            }\n\nThe snippet above uses [`elm/time`](https://package.elm-lang.org/packages/elm/time) and [`rtfeldman/elm-iso8601-date-strings`](https://package.elm-lang.org/packages/rtfeldman/elm-iso8601-date-strings/latest/Iso8601)\nto convert our `Time.Posix` value into an ISO 8601 `String` value for our API.\n\n    import GraphQL.Scalar.DateTime\n\n    GraphQL.Scalar.DateTime.encode\n        (Time.millisToPosix 1672019156520)\n        == Json \"2022-12-26T01:45:56.520Z\"\n\n","type":"{ toJson : scalar -> Json.Encode.Value, value : scalar } -> GraphQL.Encode.Value"},{"name":"string","comment":" Create a GraphQL input from a `String` value:\n\n    import GraphQL.Encode\n\n    name : GraphQL.Encode.Value\n    name =\n        GraphQL.Encode.string \"Ryan\"\n\n","type":"String.String -> GraphQL.Encode.Value"},{"name":"toJson","comment":" ","type":"GraphQL.Encode.Value -> Json.Encode.Value"}],"binops":[]},{"name":"GraphQL.Http","comment":"\n\n\n## **Making HTTP requests**\n\n@docs get, post\n\n\n## **Advanced usage with `elm/http`**\n\nThe two functions below are helpful for more advanced applications using functions like [`Http.request`](https://package.elm-lang.org/packages/elm/http/latest/Http#request).\n\nUse these if you need to send HTTP headers, define request timeouts, etc.\n\n    import GraphQL.Http\n    import Http\n\n    fetchCurrentUser : Cmd Msg\n    fetchCurrentUser =\n        Http.request\n            { method = \"POST\"\n            , url = \"/api/graphql\"\n            , headers = []\n            , body =\n                GraphQL.Http.body\n                    { operationName = Just \"FetchCurrentUser\"\n                    , query = \"\"\"\n                        query FetchCurrentUser {\n                            me {\n                                id\n                                name\n                            }\n                        }\n                    \"\"\"\n                    , variables = []\n                    }\n            , expect =\n                GraphQL.Http.expect\n                    FetchCurrentUserApiResponded\n                    decoder\n            , tracker = Nothing\n            , timeout = Nothing\n            }\n\n@docs body, expect\n\n","unions":[],"aliases":[],"values":[{"name":"body","comment":" Create the JSON body for your GraphQL request.\n\n    GraphQL.Http.body\n        { operationName = Just \"FetchCurrentUser\"\n        , query = \"\"\"\n            query FetchCurrentUser {\n                me {\n                    id\n                    name\n                }\n            }\n        \"\"\"\n        , variables = []\n        }\n\n","type":"{ operationName : Maybe.Maybe String.String, query : String.String, variables : List.List ( String.String, GraphQL.Encode.Value ) } -> Http.Body"},{"name":"expect","comment":" Expect a JSON response from a GraphQL API.\n\n    fetchData : Cmd Msg\n    fetchData =\n        Http.request\n            { -- ... other fields\n            , expect =\n                GraphQL.Http.expect\n                    ApiResponded\n                    decoder\n            }\n\n","type":"(Result.Result Http.Error data -> msg) -> GraphQL.Decode.Decoder data -> Http.Expect msg"},{"name":"get","comment":" Send an HTTP `GET` request to your GraphQL API\n\n    GraphQL.Http.get\n        { url = \"/api/graphql\"\n        , query = \"\"\"\n            query FindPerson(name: $name) {\n                person(name: $name) {\n                    id\n                    name\n                }\n            }\n        \"\"\"\n        , variables =\n            [ ( \"name\", GraphQL.Encode.string \"Doug\" )\n            ]\n        , onResponse = ApiResponded\n        , decoder = decoder\n        }\n\n","type":"{ url : String.String, query : String.String, variables : List.List ( String.String, GraphQL.Encode.Value ), decoder : GraphQL.Decode.Decoder data, onResponse : Result.Result Http.Error data -> msg } -> Platform.Cmd.Cmd msg"},{"name":"post","comment":" Send an HTTP `POST` request to your GraphQL API\n\n    GraphQL.Http.post\n        { url = \"/api/graphql\"\n        , query = \"\"\"\n            query FindPerson(name: $name) {\n                person(name: $name) {\n                    id\n                    name\n                }\n            }\n        \"\"\"\n        , variables =\n            [ ( \"name\", GraphQL.Encode.string \"Doug\" )\n            ]\n        , onResponse = ApiResponded\n        , decoder = decoder\n        }\n\n","type":"{ url : String.String, query : String.String, variables : List.List ( String.String, GraphQL.Encode.Value ), decoder : GraphQL.Decode.Decoder data, onResponse : Result.Result Http.Error data -> msg } -> Platform.Cmd.Cmd msg"}],"binops":[]},{"name":"GraphQL.Scalar.Id","comment":"\n\n\n## **Custom scalars**\n\nUsing the [`GraphQL.Decode.scalar`](./GraphQL-Decode#scalar) and [`GraphQL.Encode.scalar`](./GraphQL-Encode#scalar) functions, you can define\nElm modules like this one in your own codebase for any custom scalars you need.\n\nBecause the `ID` scalar is built-in to the GraphQL specification, we provide this one for\nyou by default. Your custom scalars will also include a `decoder` / `encode` function so they\nare easy to reuse across your application!\n\n@docs Id\n@docs fromString, fromInt\n@docs toString\n\n","unions":[{"name":"Id","comment":" Represents a GraphQL `ID` scalar value.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"fromInt","comment":" Use a `Int` value to create a new `ID`:\n\n    import GraphQL.Scalar.Id exposing (Id)\n\n    id : Id\n    id =\n        GraphQL.Scalar.Id.fromInt 123\n\n","type":"Basics.Int -> GraphQL.Scalar.Id.Id"},{"name":"fromString","comment":" Use a `String` value to create a new `ID`:\n\n    import GraphQL.Scalar.Id exposing (Id)\n\n    id : Id\n    id =\n        GraphQL.Scalar.Id.fromString \"12a4bf\"\n\n","type":"String.String -> GraphQL.Scalar.Id.Id"},{"name":"toString","comment":" Convert an existing `ID` to a `String` value:\n\n    import GraphQL.Scalar.Id exposing (Id)\n\n    messageToUser : String\n    messageToUser =\n        \"Your ID is: \" ++ GraphQL.Scalar.Id.toString userId\n\n","type":"GraphQL.Scalar.Id.Id -> String.String"}],"binops":[]}]