[
    {
        "name": "GraphQl",
        "comment": " GraphQL queries made easy in Elm!\nThis package provides easier way to deal with GraphQL queries.\nThis package aims to partially mimic the Json Encoders and the HTTP API.\nEvery user of Elm should not be lost using this package.\n\n```\nimport GraphQl\n\n-- Define the request.\nuserRequest : GraphQl.Value\nuserRequest =\n  GraphQl.object\n    [ GraphQl.field \"user\"\n      |> GraphQl.withArgument \"id\" (GraphQl.variable \"id\")\n      |> GraphQl.withSelectors\n        [ GraphQl.field \"id\"\n        , GraphQl.field \"name\"\n          |> GraphQl.withSelectors\n            [ GraphQl.field \"first_name\"\n            , GraphQl.field \"last_name\"\n            ]\n        ]\n    , GraphQl.field \"address\"\n      |> GraphQl.withArgument \"city\" (GraphQl.string \"Paris\")\n      |> GraphQl.withArgument \"id\" (GraphQl.int 12)\n      |> GraphQl.withArgument \"type\" (GraphQl.type_ \"LOFT\")\n      |> GraphQl.withSelectors\n        [ GraphQl.field \"street\"\n        , GraphQl.field \"neighborhood\"\n        ]\n    ]\n    |> GraphQl.withVariable \"id\" \"INT!\"\n\n-- And Send It!\nsendRequest : Int -> Decoder a -> Cmd msg\nsendRequest id decoder =\n  GraphQl.query \"/example_endpoint\" userRequest decoder\n    |> GraphQl.addVariables [ (\"id\", Encode.int id) ]\n    |> GraphQl.send\n```\n\n# Value\n@docs Value\n\n# Constructors\n@docs object\n@docs named\n@docs field\n\n# Modifiers\n@docs withArgument\n@docs withVariable\n@docs withAlias\n@docs withSelectors\n\n# Arguments\n@docs Argument\n@docs int\n@docs string\n@docs type_\n@docs variable\n\n# Requests\n@docs Request\n@docs query\n@docs addVariables\n@docs send\n\n",
        "unions": [
            {
                "name": "Argument",
                "comment": " Handle arguments on GraphQL fields. ",
                "args": [],
                "cases": []
            },
            {
                "name": "Request",
                "comment": " Requests contains the query and the variables of each GraphQl requests. ",
                "args": [
                    "a"
                ],
                "cases": []
            },
            {
                "name": "Value",
                "comment": " Handle GraphQL values. ",
                "args": [],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "addVariables",
                "comment": " Add variables to a requests. Useful when defining variables in your GraphQL request.\n\n    object []\n      |> flip (query \"https://example.com\") decoder\n      |> addVariables []\n      |> send msg\n",
                "type": "List ( String, Value ) -> Request a -> Request a"
            },
            {
                "name": "field",
                "comment": " Generate a field. ",
                "type": "String -> Value"
            },
            {
                "name": "int",
                "comment": " Generate an argument, to use with `withArgument`.\n\n    fied \"user\"\n      |> withArgument \"id\" (GraphQl.int 12)\n\nTurns into:\n\n    user(id: 12)\n",
                "type": "Int -> Argument"
            },
            {
                "name": "named",
                "comment": " Generate a Value with a name.\n\n    named \"MySuperRequest\"\n      [ field \"user\" ]\n\nTurns into:\n\n    query MySuperRequest {\n      user\n    }\n",
                "type": "String -> List Value -> Value"
            },
            {
                "name": "object",
                "comment": " Generate a Value, from a list of fields.\n\n    object\n      [ field \"user\" ]\n\nTurns into:\n\n    query {\n      user\n    }\n",
                "type": "List Value -> Value"
            },
            {
                "name": "query",
                "comment": " Entry of every GraphQL values to turn them into requests, which can be launched!\n\n    object []\n      |> flip (query \"https://example.com\") decoder\n      |> send msg\n",
                "type": "String -> Value -> Decoder a -> Request a"
            },
            {
                "name": "send",
                "comment": " Actually send the GraphQL request! Generates a Cmd, to give to Elm in your update. ",
                "type": "(Result Error a -> msg) -> Request a -> Cmd msg"
            },
            {
                "name": "string",
                "comment": " Generate an argument, to use with `withArgument`.\n\n    fied \"user\"\n      |> withArgument \"id\" (GraphQl.string \"12\")\n\nTurns into:\n\n    user(id: \"12\")\n",
                "type": "String -> Argument"
            },
            {
                "name": "type_",
                "comment": " Generate an argument, to use with `withArgument`.\nGenerate a type in GraphQL.\n\n    fied \"user\"\n      |> withArgument \"id\" (GraphQl.type_ \"INT\")\n\nTurns into:\n\n    user(id: INT)\n",
                "type": "String -> Argument"
            },
            {
                "name": "variable",
                "comment": " Generate an argument, to use with `withArgument`.\nYou don't have to handle the $ sign.\n\n    fied \"user\"\n      |> withArgument \"id\" (GraphQl.variable \"id\")\n\nTurns into:\n\n    user(id: $id)\n",
                "type": "String -> Argument"
            },
            {
                "name": "withAlias",
                "comment": " Add an alias to a Field.\n\n    field \"user\"\n      |> withAlias \"currentUser\"\n      |> withSelectors\n        [ field \"id\"\n        , field \"first_name\"\n        , field \"last_name\"\n        ]\n\nTurns into:\n\n    currentUser: user {\n      id\n      first_name\n      last_name\n    }\n",
                "type": "String -> Value -> Value"
            },
            {
                "name": "withArgument",
                "comment": " Add an argument to a Field.\n\n    field \"user\"\n      |> withArgument \"id\" (GraphQl.string \"12\")\n      |> withSelectors\n        [ field \"id\"\n        , field \"first_name\"\n        , field \"last_name\"\n        ]\n\nTurns into:\n\n    user(id: \"12\") {\n      id\n      first_name\n      last_name\n    }\n",
                "type": "String -> Argument -> Value -> Value"
            },
            {
                "name": "withSelectors",
                "comment": " Add selectors to a Field.\n\n    field \"user\"\n      |> withSelectors\n        [ field \"id\"\n        , field \"first_name\"\n        , field \"last_name\"\n        ]\n\nTurns into:\n\n    user {\n      id\n      first_name\n      last_name\n    }\n",
                "type": "List Value -> Value -> Value"
            },
            {
                "name": "withVariable",
                "comment": " Add a variable to a Field.\n\n    field \"user\"\n      |> withVariable \"id\" \"id\"\n\nTurns into:\n\n    user(id: $id)\n",
                "type": "String -> String -> Value -> Value"
            }
        ],
        "binops": []
    }
]