add-typenames
TypeScript icon, indicating that this package has built-in type declarations

0.1.4 • Public • Published

add-typenames

addTypenames copies a given input object and recursively adds GraphQL __typenames to the output.

Installation

yarn install add-typenames graphql

Usage

const typedItem = addTypenames({ item, schema });

Example

import addTypenames from 'add-typenames';
import { buildSchema } from 'graphql'

const typeDefs = `
    """ Add your schema definition here
`;
const item = {
    /* Your item to be typed */
};

const schema = buildSchema(typeDefs);

const typedItem = addTypenames({ item, schema });

Hint: Adding __typename to the root of the input item will resolve most issues that may arise by leveraging the schema to resolve all types rather than relying on heuristics

Handling Unions, Interfaces and Scalars

In order to properly resolve Unions, Interfaces and Scalars we need the resolvers for those types to be included as part of the schema. This can be done with makeExecutableSchema

import { makeExecutableSchema } from '@graphql-tools/schema';

const schema = makeExecutableSchema({
    typeDefs,
    resolvers,
});

Hint: Only include the resolvers for Unions, Interfaces and Scalars. The rest are unused and not needed.

Readme

Keywords

none

Package Sidebar

Install

npm i add-typenames

Weekly Downloads

419

Version

0.1.4

License

MIT

Unpacked Size

12 kB

Total Files

9

Last publish

Collaborators

  • zanemcca