Packages
absinthe
1.6.3
1.11.0
1.10.2
1.10.1
1.10.0
1.9.1
1.9.0
1.8.0
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.8
1.6.7
retired
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.6.0-rc.1
1.6.0-rc.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.5.0-rc.5
1.5.0-rc.4
1.5.0-rc.3
1.5.0-rc.2
1.5.0-rc.1
1.5.0-rc.0
1.5.0-beta.2
1.5.0-beta.1
1.5.0-beta.0
1.5.0-alpha.4
1.5.0-alpha.3
1.5.0-alpha.2
1.5.0-alpha.1
1.5.0-alpha.0
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
retired
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.4.0-rc.3
1.4.0-rc.2
1.4.0-rc.1
1.4.0-rc.0
1.4.0-beta.5
1.4.0-beta.4
1.4.0-beta.3
1.4.0-beta.2
1.4.0-beta.1
1.3.2
1.3.1
1.3.0
1.3.0-rc.0
1.3.0-beta.2
1.3.0-beta.1
1.3.0-beta.0
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc.0
1.2.0-beta.0
1.2.0-alpha0
1.2.0-alpha.2
1.2.0-alpha.1
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.2.3
0.2.2
0.2.1
0.1.0
GraphQL for Elixir
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/absinthe/adapter/strict_language_conventions.ex
defmodule Absinthe.Adapter.StrictLanguageConventions do
@moduledoc """
Strict version of `Absinthe.Adapter.LanguageConventions` that will reject
improperly formatted external names.
For example, this document:
```graphql
{
create_user(user_id: 2) {
first_name
last_name
}
}
```
Would result in name-mismatch errors returned to the client.
The client should instead send the camelcase variant of the names:
```graphql
{
createUser(userId: 2) {
firstName
lastName
}
}
```
See `Absinthe.Adapter.LanguageConventions` for more information.
"""
use Absinthe.Adapter
@doc """
Converts a camelCase to snake_case
Returns `nil` if the converted internal name does not match the converted external name.
See `Absinthe.Adapter.LanguageConventions.to_internal_name/2`
"""
@impl Absinthe.Adapter
def to_internal_name(external_name, role) do
internal_name = Absinthe.Adapter.LanguageConventions.to_internal_name(external_name, role)
if external_name == Absinthe.Adapter.LanguageConventions.to_external_name(internal_name, role) do
internal_name
else
nil
end
end
@doc """
Converts a snake_case to camelCase
See `Absinthe.Adapter.LanguageConventions.to_external_name/2`
"""
@impl Absinthe.Adapter
def to_external_name(internal_name, role) do
Absinthe.Adapter.LanguageConventions.to_external_name(internal_name, role)
end
end