Fast.Absinthe.ExtractPossibleTypes (Fast v0.11.0)
View SourceSummary
Functions
Extract GraphQL possible types to support result validation and accurate fragment matching on unions and interfaces.
Functions
Extract GraphQL possible types to support result validation and accurate fragment matching on unions and interfaces.
More info here: https://www.apollographql.com/docs/react/data/fragments/#defining-possibletypes-manually
Example usage in a mix task:
defmodule Mix.Tasks.ExtractPossibleTypes do
use Mix.Task
alias Fast.Absinthe.ExtractPossibleTypes
alias Fast.Application.Schema
require Logger
@shortdoc "Extract GraphQL possible types"
def run([schema_name, output_path]) do
Logger.info("Extracting possible types...")
schema =
case schema_name do
"api" -> Schema.Api
"admin" -> Schema.Admin
end
json =
schema
|> ExtractPossibleTypes.run()
|> Jason.encode!()
File.write!(output_path, json)
Logger.info("Done! (possible types written to " <> output_path <> ")")
end
end