Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

apollo-transform-utils

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apollo-transform-utils

Utility transforms for graphql-tools

  • 0.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

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 } = require('apollo-transform-utils')

const transforms = [
  new PickTransform(fieldName),
  new InlineFragmentTransform('ContactInfo')
  new NestTransform(`${fieldName}.user.info`),
  new Debug()
]

// within resolver
return info.mergeInfo
    .delegateToSchema({
      schema: info.schema,
      operation: info.operation.operation,
      fieldName,
      args,
      context,
      info,
      transforms
    })

Usage

NestTransform(path: string)

Place your current selection set under a specified period-delimited path

Example
const { NestTransform } = require('apollo-transform-utils')

const path = 'user.contactInfo'

const transforms = [
  new NestTransform(path)
]

/*
 * { number } -> { user { contactInfo { number } } }
 */

PickTransform(path: string)

Opposite of NestTransform. Select selections along a period-delimited path.

Example
const { PickTransform } = require('apollo-transform-utils')

const path = 'user.contactInfo'

const transforms = [
  new PickTransform(path)
]

/*
 * { user { contactInfo { number } } } -> { number }
 */

InlineFragmentTransform(typeName: string)

Nest your currently selection under a inline fragment of type typeName

Example
const { InlineFragmentTransform } = require('apollo-transform-utils')

const typeName = 'User'

const transforms = [
  new InlineFragmentTransform(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 } = require('apollo-transform-utils')

const newDocument = `
  query {
    user {
      friends {
        ${DocumentTransform.__SELECTIONS__}
      }
    }
  }
`

const transforms = new DocumentTransform(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 } = require('apollo-transform-utils')

const transforms = [
  new Debug(),
    new PickTransform(fieldName),
  new Debug(),
    new InlineFragmentTransform('ContactInfo')
  new Debug(),
    new NestTransform(`${fieldName}.user.info`),
  new Debug()
]

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.

Keywords

FAQs

Package last updated on 29 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc