1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.findAndLoadGraphQLConfig = exports.CodegenExtension = void 0;
|
4 | const graphql_config_1 = require("graphql-config");
|
5 | const apollo_engine_loader_1 = require("@graphql-tools/apollo-engine-loader");
|
6 | const code_file_loader_1 = require("@graphql-tools/code-file-loader");
|
7 | const git_loader_1 = require("@graphql-tools/git-loader");
|
8 | const github_loader_1 = require("@graphql-tools/github-loader");
|
9 | const prisma_loader_1 = require("@graphql-tools/prisma-loader");
|
10 | const CodegenExtension = (api) => {
|
11 |
|
12 | api.loaders.schema.register(new code_file_loader_1.CodeFileLoader({
|
13 | pluckConfig: {
|
14 | skipIndent: true,
|
15 | },
|
16 | }));
|
17 | api.loaders.schema.register(new git_loader_1.GitLoader());
|
18 | api.loaders.schema.register(new github_loader_1.GithubLoader());
|
19 | api.loaders.schema.register(new apollo_engine_loader_1.ApolloEngineLoader());
|
20 | api.loaders.schema.register(new prisma_loader_1.PrismaLoader());
|
21 |
|
22 | api.loaders.documents.register(new code_file_loader_1.CodeFileLoader({
|
23 | pluckConfig: {
|
24 | skipIndent: true,
|
25 | },
|
26 | }));
|
27 | api.loaders.documents.register(new git_loader_1.GitLoader());
|
28 | api.loaders.documents.register(new github_loader_1.GithubLoader());
|
29 | return {
|
30 | name: 'codegen',
|
31 | };
|
32 | };
|
33 | exports.CodegenExtension = CodegenExtension;
|
34 | async function findAndLoadGraphQLConfig(filepath) {
|
35 | const config = await (0, graphql_config_1.loadConfig)({
|
36 | filepath,
|
37 | rootDir: process.cwd(),
|
38 | extensions: [exports.CodegenExtension],
|
39 | throwOnEmpty: false,
|
40 | throwOnMissing: false,
|
41 | });
|
42 | if (isGraphQLConfig(config)) {
|
43 | return config;
|
44 | }
|
45 | }
|
46 | exports.findAndLoadGraphQLConfig = findAndLoadGraphQLConfig;
|
47 |
|
48 |
|
49 | function isGraphQLConfig(config) {
|
50 | if (!config) {
|
51 | return false;
|
52 | }
|
53 | try {
|
54 | return config.getDefault().hasExtension('codegen');
|
55 | }
|
56 | catch (e) { }
|
57 | try {
|
58 | for (const projectName in config.projects) {
|
59 | if (config.projects.hasOwnProperty(projectName)) {
|
60 | const project = config.projects[projectName];
|
61 | if (project.hasExtension('codegen')) {
|
62 | return true;
|
63 | }
|
64 | }
|
65 | }
|
66 | }
|
67 | catch (e) { }
|
68 | return false;
|
69 | }
|