Skip to content
Snippets Groups Projects
Commit a8c5d8a6 authored by Eduardo Trujillo's avatar Eduardo Trujillo
Browse files

Upgrade dependencies and fix remaining type issues

parent 8b6f5690
Branches master
No related tags found
Loading
import { codegen } from '@graphql-codegen/core';
import * as typescriptPlugin from '@graphql-codegen/typescript';
// @ts-ignore
import * as typescriptOperationsPlugin from '@graphql-codegen/typescript-operations';
import { CodeFileLoader } from '@graphql-toolkit/code-file-loader';
import { loadDocuments, loadSchema } from '@graphql-toolkit/core';
import { JsonFileLoader } from '@graphql-toolkit/json-file-loader';
import chokidar from 'chokidar';
import crypto from 'crypto';
import fs from 'fs';
import { GatsbyNode } from 'gatsby';
import { getIntrospectionQuery, graphql } from 'graphql';
import { loadDocuments, loadSchema } from 'graphql-toolkit';
import { getIntrospectionQuery, graphql, parse, printSchema } from 'graphql';
import debounce from 'lodash.debounce';
import path from 'path';
......@@ -59,14 +60,24 @@ export const onPostBootstrap: GatsbyNode['onPostBootstrap'] = async (
// Wait for first extraction
await extractSchema();
const schemaAst = await loadSchema(schemaOutputPath);
const documents = await loadDocuments(resolve(DOCUMENTS_GLOB));
const schemaAst = await loadSchema(schemaOutputPath, {
loaders: [new JsonFileLoader()],
});
const documents = await loadDocuments(resolve(DOCUMENTS_GLOB), {
loaders: [new CodeFileLoader()],
});
log('Documents are loaded');
const plugins: Array<{ typescript: [] } | { typescriptOperations: [] }> = [
{ typescript: [] },
{ typescriptOperations: [] },
];
const config = {
schema: parse(printSchema(schemaAst)),
schemaAst,
filename: typeDefsOutputPath,
plugins: [{ typescript: {} }, { typescriptOperations: {} }],
plugins,
pluginMap: {
typescript: typescriptPlugin,
typescriptOperations: typescriptOperationsPlugin,
......@@ -82,7 +93,6 @@ export const onPostBootstrap: GatsbyNode['onPostBootstrap'] = async (
};
const writeTypeDefinition = debounce(async () => {
// @ts-ignore
const output = await codegen({
...config,
documents,
......@@ -111,11 +121,15 @@ export const onPostBootstrap: GatsbyNode['onPostBootstrap'] = async (
}
const changed = documents.findIndex(
document => document.filePath === filePath,
document => document.location === filePath,
);
if (changed !== -1) {
documents[changed] = (await loadDocuments(filePath))[0];
documents[changed] = (
await loadDocuments(filePath, {
loaders: [new CodeFileLoader()],
})
)[0];
}
writeTypeDefinition();
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment