JSPM

graphql-import

1.0.0-ec9ae36.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 198248
  • Score
    100M100P100Q34734F
  • License MIT

Package Exports

  • graphql-import

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (graphql-import) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

graphql-import

Discord Chat

Install

yarn add graphql-import@beta

Usage

import { importSchema } from 'graphql-import'
import { makeExecutableSchema } from 'graphql-tools'

async function start() {
  const typeDefs = await importSchema('schema.graphql'); // or .gql or glob pattern like **/*.graphql
  const resolvers = {};

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

main().catch(err => console.error(err));

Assume the following directory structure:

.
├── schema.graphql
├── posts.graphql
└── comments.graphql

schema.graphql

# import Post from "posts.graphql"

type Query {
  posts: [Post]
}

posts.graphql

# import Comment from 'comments.graphql'

type Post {
  comments: [Comment]
  id: ID!
  text: String!
  tags: [String]
}

comments.graphql

type Comment {
  id: ID!
  text: String!
}

Running importSchema('schema.graphql') produces the following output:

type Query {
  posts: [Post]
}

type Post {
  comments: [Comment]
  id: ID!
  text: String!
  tags: [String]
}

type Comment {
  id: ID!
  text: String!
}

Updating from 0.7.x

Install the new version as in Install step and after that update your code as in Usage step because importSchema is not sync anymore and returns promise,. We recommend you to use async/await to make the migration simple. The second parameter is now options. If you want to provide preresolved type definitions as in 0.7.x, use the method below; Before

const finalSchema = importSchema('somePointer', {
  'mySchema': `
      type Query {
        foo: String
      }
    `
})

After

const finalSchema = await importSchema('somePointer', {
  cache: {
    'mySchema': {
      rawSDL: `
        type Query {
          foo: String
        }
      `
    }
  }
})