UNPKG

@apollo/subgraph

Version:
44 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printBlockString = exports.printType = exports.printIntrospectionSchema = exports.printSubgraphSchema = void 0; const graphql_1 = require("graphql"); const federation_internals_1 = require("@apollo/federation-internals"); function printSubgraphSchema(schema) { const ast = (0, federation_internals_1.graphQLJSSchemaToAST)(schema); const subgraph = (0, federation_internals_1.buildSubgraph)(federation_internals_1.FEDERATION_UNNAMED_SUBGRAPH_NAME, '', ast, false); return subgraph.toString(); } exports.printSubgraphSchema = printSubgraphSchema; function printIntrospectionSchema(schema) { const ast = (0, federation_internals_1.graphQLJSSchemaToAST)(schema); const subgraph = (0, federation_internals_1.buildSubgraph)(federation_internals_1.FEDERATION_UNNAMED_SUBGRAPH_NAME, '', ast, false); return (0, federation_internals_1.printSchema)(subgraph.schema); } exports.printIntrospectionSchema = printIntrospectionSchema; function printType(type) { const { definition, extensions } = (0, federation_internals_1.graphQLJSNamedTypeToAST)(type); const defAst = definition ? [definition] : []; return defAst.concat(extensions).map((n) => (0, graphql_1.print)(n)).join('\n\n'); } exports.printType = printType; function printBlockString(value, preferMultipleLines = false) { const isSingleLine = !value.includes('\n'); const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; const hasTrailingQuote = value[value.length - 1] === '"'; const hasTrailingSlash = value[value.length - 1] === '\\'; const printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines; let result = ''; if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) { result += '\n'; } result += value; if (printAsMultipleLines) { result += '\n'; } return '"""' + result.replace(/"""/g, '\\"""') + '"""'; } exports.printBlockString = printBlockString; //# sourceMappingURL=printSubgraphSchema.js.map