UNPKG

1.54 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.validate = exports.plugin = void 0;
4const graphql_1 = require("graphql");
5const plugin_helpers_1 = require("@graphql-codegen/plugin-helpers");
6const path_1 = require("path");
7const visitor_plugin_common_1 = require("@graphql-codegen/visitor-plugin-common");
8const plugin = async (schema, _documents, pluginConfig) => {
9 const cleanSchema = pluginConfig.federation ? (0, plugin_helpers_1.removeFederation)(schema) : schema;
10 const descriptions = (0, visitor_plugin_common_1.getConfigValue)(pluginConfig.descriptions, true);
11 const directiveIsRepeatable = (0, visitor_plugin_common_1.getConfigValue)(pluginConfig.directiveIsRepeatable, true);
12 const schemaDescription = (0, visitor_plugin_common_1.getConfigValue)(pluginConfig.schemaDescription, undefined);
13 const specifiedByUrl = (0, visitor_plugin_common_1.getConfigValue)(pluginConfig.specifiedByUrl, undefined);
14 const introspection = (0, graphql_1.introspectionFromSchema)(cleanSchema, {
15 descriptions,
16 directiveIsRepeatable,
17 schemaDescription,
18 specifiedByUrl,
19 });
20 return pluginConfig.minify ? JSON.stringify(introspection) : JSON.stringify(introspection, null, 2);
21};
22exports.plugin = plugin;
23const validate = async (schema, documents, config, outputFile) => {
24 if ((0, path_1.extname)(outputFile) !== '.json') {
25 throw new Error(`Plugin "introspection" requires extension to be ".json"!`);
26 }
27};
28exports.validate = validate;