merge-schemas.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.mergeSchemas = void 0;
  4. const utils_1 = require("@graphql-tools/utils");
  5. const makeExecutableSchema_js_1 = require("./makeExecutableSchema.js");
  6. /**
  7. * Synchronously merges multiple schemas, typeDefinitions and/or resolvers into a single schema.
  8. * @param config Configuration object
  9. */
  10. function mergeSchemas(config) {
  11. const extractedTypeDefs = [];
  12. const extractedResolvers = [];
  13. const extractedSchemaExtensions = [];
  14. if (config.schemas != null) {
  15. for (const schema of config.schemas) {
  16. extractedTypeDefs.push(schema);
  17. extractedResolvers.push((0, utils_1.getResolversFromSchema)(schema));
  18. extractedSchemaExtensions.push((0, utils_1.extractExtensionsFromSchema)(schema));
  19. }
  20. }
  21. if (config.typeDefs != null) {
  22. extractedTypeDefs.push(config.typeDefs);
  23. }
  24. if (config.resolvers != null) {
  25. const additionalResolvers = (0, utils_1.asArray)(config.resolvers);
  26. extractedResolvers.push(...additionalResolvers);
  27. }
  28. if (config.schemaExtensions != null) {
  29. const additionalSchemaExtensions = (0, utils_1.asArray)(config.schemaExtensions);
  30. extractedSchemaExtensions.push(...additionalSchemaExtensions);
  31. }
  32. return (0, makeExecutableSchema_js_1.makeExecutableSchema)({
  33. ...config,
  34. typeDefs: extractedTypeDefs,
  35. resolvers: extractedResolvers,
  36. schemaExtensions: extractedSchemaExtensions,
  37. });
  38. }
  39. exports.mergeSchemas = mergeSchemas;