alumbra.analyzer

analyze-schema

(analyze-schema schema parser-fn)(analyze-schema schema parser-fn {:keys [base-schema introspection-schema]})

Given a schema (implementing IReadable), as well as a parser function, generate a value conforming to :alumbra/analyzed-schema.

(analyze-schema
  "type Person { name: String! }
   schema { query: Person }"
  alumbra.parser/parse-schema)

By default, base and introspection schemas bundled with this library will be used. You can exclude them by explicitly supplying nil and replace them by passing a Schema value.

analyze-schemas*

(analyze-schemas* schemas base-schema parser-fn)

canonicalize-operation

(canonicalize-operation analyzed-schema document)(canonicalize-operation analyzed-schema document operation-name)(canonicalize-operation analyzed-schema document operation-name variables)

Canonicalize a validated GraphQL document based on the given schema.

canonicalizer

(canonicalizer analyzed-schema)

Create a function canonicalizing GraphQL documents conforming to :alumbra/document based on the given schema.

Schema

protocol

Protocol for representations of GraphQL schemas.

members

analyze-schema*

(analyze-schema* schema base-schema parser-fn)

Convert the given GraphQL schema representation to a value conforming to :alumbra/analyzed-schema.

Use analyze-schema to produce a self-contained schema, including base types, directives and introspection capabilities.