1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.loadDocuments = exports.loadSchema = exports.defaultDocumentsLoadOptions = exports.defaultSchemaLoadOptions = void 0;
|
4 | const load_1 = require("@graphql-tools/load");
|
5 | const code_file_loader_1 = require("@graphql-tools/code-file-loader");
|
6 | const git_loader_1 = require("@graphql-tools/git-loader");
|
7 | const github_loader_1 = require("@graphql-tools/github-loader");
|
8 | const graphql_file_loader_1 = require("@graphql-tools/graphql-file-loader");
|
9 | const json_file_loader_1 = require("@graphql-tools/json-file-loader");
|
10 | const url_loader_1 = require("@graphql-tools/url-loader");
|
11 | const apollo_engine_loader_1 = require("@graphql-tools/apollo-engine-loader");
|
12 | const prisma_loader_1 = require("@graphql-tools/prisma-loader");
|
13 | const path_1 = require("path");
|
14 | exports.defaultSchemaLoadOptions = {
|
15 | assumeValidSDL: true,
|
16 | sort: true,
|
17 | convertExtensions: true,
|
18 | includeSources: true,
|
19 | };
|
20 | exports.defaultDocumentsLoadOptions = {
|
21 | sort: true,
|
22 | skipGraphQLImport: true,
|
23 | };
|
24 | async 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 | }
|
63 | exports.loadSchema = loadSchema;
|
64 | async 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 |
|
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 | }
|
99 | exports.loadDocuments = loadDocuments;
|