apollo-transform-utils
Utility transforms to be used as
graphql-tools
transforms
Getting Started
Install apollo-transform-utils
with
$ npm i apollo-transform-utils
or
$ yarn add apollo-transform-utils
and use them within your delegateToSchema
resolvers:
const Debug PickTransform InlineFragmentTransform NestTransform = const transforms = fieldName 'ContactInfo' `.user.info` // within resolverreturn infomergeInfo
Usage
NestTransform(path: string)
Place your current selection set under a specified period-delimited path
Example
const NestTransform = const path = 'user.contactInfo' const transforms = path /* * { number } -> { user { contactInfo { number } } } */
PickTransform(path: string)
Opposite of NestTransform
. Select selections along a period-delimited path.
Example
const PickTransform = const path = 'user.contactInfo' const transforms = path /* * { user { contactInfo { number } } } -> { number } */
InlineFragmentTransform(typeName: string)
Nest your currently selection under a inline fragment of type typeName
Example
const InlineFragmentTransform = const typeName = 'User' const transforms = typeName /* * { id } -> { ... on User { id } } */
DocumentTransform(query: string | Document)
Creates a new document and replaces the string __SELECTIONS__
with your current selection set.
Example
const DocumentTransform = const newDocument = ` query { user { friends { } } }` const transforms = newDocument /* * { id } -> { user { friends { id } } } */
Debug
Transform that pretty prints the current operation's document and variables. Super helpful for determining intermediate results between transforms.
Example
const Debug PickTransform InlineFragmentTransform NestTransform = const transforms = fieldName 'ContactInfo' `.user.info`
Utilities
nest(path: string, selections: Array<FieldNode>)
Used by NestTransform
, but can be used as a standalone function to nest selections under a certain path.
pick(path: string, selections: Array<FieldNode>)
Used by PickTransform
, but can be used as a standalone function to pick a node along the path from a selection set.