3.0.1 • Published 3 months ago

vite-plugin-graphql-loader v3.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
3 months ago

vite-plugin-graphql-loader

NPM

npm version

A Vite plugin for loading GraphQL .gql and .graphql files, based on graphql-tag/loader

This package doesn't generate TypeScript definitions from the queries and fragments - see vite-plugin-graphql-codegen if you require this.

Install

yarn add -D vite-plugin-graphql-loader

or

npm i vite-plugin-graphql-loader --save-dev

Usage

In vite.config.ts or vite.config.js:

import { defineConfig } from "vite";
import graphqlLoader from "vite-plugin-graphql-loader";

export default defineConfig({
    plugins: [graphqlLoader()],
});

Now you can import queries from .gql or .graphql files.

example.graphql:

fragment ExampleFragment on example {
    id
    name
}

query ExampleQuery {
    example {
        ...ExampleFragment
    }
}

example.js:

import ExampleQuery, { ExampleFragment } from "./example.graphql";

If you have multiple queries in the same file, import them like this:

import { FirstQuery, SecondQuery } from "./example.graphql";

TypeScript

If you are using TypeScript, you will have to declare .gql or .graphql files.

Create graphql.d.ts anywhere in your source directory and

declare module "*.gql";
declare module "*.graphql";

Alternatively, change it to this (replacing .gql with .graphql depending on what you use):

declare module "*.gql" {
    const Query: import("graphql").DocumentNode;
    export default Query;
    export const _queries: Record<string, import("graphql").DocumentNode>;
    export const _fragments: Record<
        string,
        import("graphql").FragmentDefinitionNode
    >;
}

And then import fragments and queries like so in order to type them as DocumentNode and FragmentDefinitionNode objects.

import Document, { _queries, _fragments } from "./example.graphql";

Changelog

v3.0.0: Moved from CJS to ESM, inline with Vite 5.0's CJS deprecation. If you are using CommonJS, continue using v2.0 of this package.

3.0.1

3 months ago

3.0.0

3 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

2.0.0

1 year ago

1.0.3

1 year ago

0.0.1

3 years ago