UNPKG

@theguild/federation-composition

Version:
16 lines (15 loc) 873 B
import { applyTagFilterOnSubgraphs, } from "./tag-extraction.js"; import { composeServices } from "../compose.js"; import { extractLinkImplementations } from "../utils/link/index.js"; import { addInaccessibleToUnreachableTypes } from "./add-inaccessible-to-unreachable-types.js"; export function composeSchemaContract(services, tagFilter, removeUnreachableTypes = true) { const filteredSubgraphs = applyTagFilterOnSubgraphs(services, tagFilter); const compositionResult = composeServices(filteredSubgraphs); if (!compositionResult.errors && compositionResult.supergraphDocumentNode && removeUnreachableTypes) { const { resolveImportName } = extractLinkImplementations(compositionResult.supergraphDocumentNode); return addInaccessibleToUnreachableTypes(resolveImportName, compositionResult); } return compositionResult; }