ardatan / graphql-import-node

Import 'graphql' files in NodeJS
80 stars 14 forks source link
graphql graphql-import javascript node nodejs typescript

GraphQL Import Node

This extension makes your NodeJS application able to import graphql files. It uses require.extensions to allow you to import/require from .graphql files in NodeJS environment. The imported content will be a compiled version of the GraphQL string (DocumentNode).

It needs to be installed graphql on the project. Then, you can install it using npm or yarn;

yarn add graphql-import-node

After that, you need to load this library before anything else.

Usage with Node (JavaScript)

Make sure to run your NodeJS process with -r flag:

node -r graphql-import-node/register index.js

Or, you can require it manually in your index file:

// CommonJS
require('graphql-import-node/register');
// ES2016
import 'graphql-import-node';

Now you should be able to do:

const schema = require('./schema.graphql');

Usage with TypeScript

If you are using TypeScript (with ts-node or ts-node-dev), make sure to add the same -r graphql-import-node/register flag:

ts-node -r graphql-import-node/register index.ts

or to have typings for *.graphql files it'd better to add the import the library like below;

import 'graphql-import-node';

Now you should be able to do:

import * as schema from './schema.graphql';

Usage with Jest

If you are running a test environment like Jest, you should add the following configuration to your Jest config:

{
  "transform": {
    "^.+\\.graphql$": "graphql-import-node/jest"
  }
}