UNPKG

3.5 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.loadDocuments = exports.loadSchema = exports.defaultDocumentsLoadOptions = exports.defaultSchemaLoadOptions = void 0;
4const load_1 = require("@graphql-tools/load");
5const code_file_loader_1 = require("@graphql-tools/code-file-loader");
6const git_loader_1 = require("@graphql-tools/git-loader");
7const github_loader_1 = require("@graphql-tools/github-loader");
8const graphql_file_loader_1 = require("@graphql-tools/graphql-file-loader");
9const json_file_loader_1 = require("@graphql-tools/json-file-loader");
10const url_loader_1 = require("@graphql-tools/url-loader");
11const apollo_engine_loader_1 = require("@graphql-tools/apollo-engine-loader");
12const prisma_loader_1 = require("@graphql-tools/prisma-loader");
13const path_1 = require("path");
14exports.defaultSchemaLoadOptions = {
15 assumeValidSDL: true,
16 sort: true,
17 convertExtensions: true,
18 includeSources: true,
19};
20exports.defaultDocumentsLoadOptions = {
21 sort: true,
22 skipGraphQLImport: true,
23};
24async function loadSchema(schemaPointers, config) {
25 try {
26 const loaders = [
27 new code_file_loader_1.CodeFileLoader(),
28 new git_loader_1.GitLoader(),
29 new github_loader_1.GithubLoader(),
30 new graphql_file_loader_1.GraphQLFileLoader(),
31 new json_file_loader_1.JsonFileLoader(),
32 new url_loader_1.UrlLoader(),
33 new apollo_engine_loader_1.ApolloEngineLoader(),
34 new prisma_loader_1.PrismaLoader(),
35 ];
36 const schema = await (0, load_1.loadSchema)(schemaPointers, {
37 ...exports.defaultSchemaLoadOptions,
38 loaders,
39 ...config,
40 ...config.config,
41 });
42 return schema;
43 }
44 catch (e) {
45 throw new Error(`
46 Failed to load schema from ${Object.keys(schemaPointers).join(',')}:
47
48 ${e.message || e}
49 ${e.stack || ''}
50
51 GraphQL Code Generator supports:
52 - ES Modules and CommonJS exports (export as default or named export "schema")
53 - Introspection JSON File
54 - URL of GraphQL endpoint
55 - Multiple files with type definitions (glob expression)
56 - String in config file
57
58 Try to use one of above options and run codegen again.
59
60 `);
61 }
62}
63exports.loadSchema = loadSchema;
64async function loadDocuments(documentPointers, config) {
65 const loaders = [
66 new code_file_loader_1.CodeFileLoader({
67 pluckConfig: {
68 skipIndent: true,
69 },
70 }),
71 new git_loader_1.GitLoader(),
72 new github_loader_1.GithubLoader(),
73 new graphql_file_loader_1.GraphQLFileLoader(),
74 ];
75 const ignore = [];
76 for (const generatePath of Object.keys(config.generates)) {
77 if ((0, path_1.extname)(generatePath) === '') {
78 // we omit paths that don't resolve to a specific file
79 continue;
80 }
81 ignore.push((0, path_1.join)(process.cwd(), generatePath));
82 }
83 try {
84 const loadedFromToolkit = await (0, load_1.loadDocuments)(documentPointers, {
85 ...exports.defaultDocumentsLoadOptions,
86 ignore,
87 loaders,
88 ...config,
89 ...config.config,
90 });
91 return loadedFromToolkit;
92 }
93 catch (error) {
94 if (config.ignoreNoDocuments)
95 return [];
96 throw error;
97 }
98}
99exports.loadDocuments = loadDocuments;