# apollographql/graphql-tools

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apollographql-graphql-tools).**

5,426 stars · 827 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/apollographql/graphql-tools
- Homepage: https://www.graphql-tools.com
- awesome-repositories: https://awesome-repositories.com/repository/apollographql-graphql-tools.md

## Description

graphql-tools is a toolkit for constructing, modifying, and combining GraphQL schemas. It provides a suite of utilities for parsing Schema Definition Language, managing resolver bindings, and assembling executable schemas.

The project enables the composition of unified GraphQL gateways by merging multiple independent subschemas through schema stitching. This includes capabilities for entity type merging, type extension, and field resolution delegation to route requests across different services.

The toolkit also includes a mocking engine that generates simulated GraphQL schemas and data. This system supports custom value generation, mutation simulation, and paginated result mocking to simulate backend behavior without a live server.

Additional development utilities cover resolver coverage validation and the attachment of documentation to types and fields.

## Tags

### Software Engineering & Architecture

- [GraphQL Schema Stitching](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation/object-shape-validation/schema-composition/graphql-schema-stitching.md) — Combines several independent GraphQL schemas into a single unified API gateway. ([source](https://graphql-tools.com/))
- [Resolution Delegation](https://awesome-repositories.com/f/software-engineering-architecture/field-resolution-optimizations/resolution-delegation.md) — Extends unified schemas by adding fields that route the resolution process to another subschema. ([source](https://graphql-tools.com/docs/stitch-combining-schemas))

### Web Development

- [Schema Stitching Gateways](https://awesome-repositories.com/f/web-development/graphql-schema-management/schema-stitching-gateways.md) — Combines multiple independent GraphQL services into a single unified gateway via schema stitching.
- [Field Resolvers](https://awesome-repositories.com/f/web-development/graphql-apis/field-resolvers.md) — Binds resolver functions to a GraphQL schema to define how specific fields are fetched or computed. ([source](https://graphql-tools.com/docs/merge-resolvers))
- [Field Delegation](https://awesome-repositories.com/f/web-development/graphql-apis/field-resolvers/field-delegation.md) — Implements field resolution delegation to route requests across multiple subschemas in a unified gateway.
- [Resolver Binding Managers](https://awesome-repositories.com/f/web-development/graphql-apis/graphql-resolver-organization/resolver-binding-managers.md) — Binds resolver functions to GraphQL fields and validates coverage across the schema.
- [GraphQL Schema Composition Tools](https://awesome-repositories.com/f/web-development/graphql-schema-composition-tools.md) — Merges multiple GraphQL type definitions and schemas into a single unified API gateway.
- [GraphQL Schema Construction](https://awesome-repositories.com/f/web-development/graphql-schema-construction.md) — Combines type definitions and resolver functions into a single executable schema from distributed sources. ([source](https://cdn.jsdelivr.net/gh/apollographql/graphql-tools@main/README.md))
- [Schema-First Mapping](https://awesome-repositories.com/f/web-development/graphql-schema-definitions/schema-first-mapping.md) — Maps resolver functions to a pre-defined schema structure by parsing schema definition language strings.
- [SDL Parsers](https://awesome-repositories.com/f/web-development/graphql-schema-definitions/sdl-parsers.md) — Converts Schema Definition Language strings into executable GraphQL schema objects.
- [GraphQL Schema Generation](https://awesome-repositories.com/f/web-development/graphql-schema-generation.md) — Creates schema instances by combining schema definition language strings with corresponding resolver functions. ([source](https://graphql-tools.com/docs/generate-schema))
- [Schema-First Development Frameworks](https://awesome-repositories.com/f/web-development/graphql-schema-generation/schema-first-development-frameworks.md) — Prioritizes schema definition as the source of truth for API generation. ([source](https://www.graphql-tools.com/docs/introduction))
- [SDL Schema Generation](https://awesome-repositories.com/f/web-development/graphql-schema-generation/sdl-schema-generation.md) — Creates functional schemas from definition language strings with support for resolvers, interfaces, and unions. ([source](https://graphql-tools.com/))
- [API Mocking Servers](https://awesome-repositories.com/f/web-development/api-mocking-servers.md) — Simulates a backend server in development environments to decouple frontend and backend work. ([source](https://www.graphql-tools.com/docs/introduction))
- [Resolver Coverage Validation](https://awesome-repositories.com/f/web-development/graphql-schema-construction/resolver-coverage-validation.md) — Checks schemas to ensure required resolvers exist for arguments, non-scalar fields, or interface types. ([source](https://graphql-tools.com/docs/generate-schema))
- [Type Definition Merging](https://awesome-repositories.com/f/web-development/graphql-schema-definitions/type-definition-merging.md) — Merges multiple type definition strings into a consolidated schema definition while resolving conflicts. ([source](https://graphql-tools.com/docs/merge-typedefs))
- [Type Extensions](https://awesome-repositories.com/f/web-development/graphql-schema-definitions/type-extensions.md) — Adds new fields to existing types across multiple schema definitions to prevent oversized root lists. ([source](https://graphql-tools.com/docs/generate-schema))

### Development Tools & Productivity

- [GraphQL API Mocking](https://awesome-repositories.com/f/development-tools-productivity/graphql-api-mocking.md) — Creates simulated GraphQL backends with custom data generators to enable frontend development without a live server.
- [GraphQL Mocking Engines](https://awesome-repositories.com/f/development-tools-productivity/graphql-mocking-engines.md) — Generates simulated GraphQL schemas and data to enable frontend development without a backend.
- [GraphQL Development Tooling](https://awesome-repositories.com/f/development-tools-productivity/graphql-development-tooling.md) — Provides utilities for validating resolver coverage and attaching documentation to GraphQL types and fields.

### DevOps & Infrastructure

- [GraphQL](https://awesome-repositories.com/f/devops-infrastructure/gateway-orchestration/graphql.md) — Routes field resolution across multiple subschemas to unify data from different services into one endpoint.

### Data & Databases

- [Scalar-Based Mocking](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-modeling-schemas/schema-based-data-models/mock-data-generators/scalar-based-mocking.md) — Creates a schema that returns simulated data based on scalar types to enable rapid prototyping. ([source](https://graphql-tools.com/docs/mocking))
- [Mock Value Generators](https://awesome-repositories.com/f/data-databases/data-type-definitions/scalar-types/custom-scalars/scalar-value-generation/mock-value-generators.md) — Provides utilities to generate randomized or predefined mock data based on GraphQL scalar types.
- [Entity Type Unification](https://awesome-repositories.com/f/data-databases/entity-inheritance/shared-entity-types/entity-type-unification.md) — Unifies different type definitions from multiple services that refer to the same entity to fetch fields from multiple sources. ([source](https://graphql-tools.com/docs/stitch-combining-schemas))

### Networking & Communication

- [GraphQL Response Simulation](https://awesome-repositories.com/f/networking-communication/network-traffic-processors/api-response-simulators/graphql-response-simulation.md) — Simulates API responses with per-type mocking to enable prototyping without active data sources. ([source](https://graphql-tools.com/))

### Programming Languages & Runtimes

- [GraphQL Mock Value Customization](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-safety/component-property-definitions/mock-property-definitions/property-level-mock-value-customizations/graphql-mock-value-customization.md) — Defines specific return values or generator functions for scalars and object types to simulate realistic data models. ([source](https://graphql-tools.com/docs/mocking))

### Part of an Awesome List

- [GraphQL Development Tools](https://awesome-repositories.com/f/awesome-lists/devtools/graphql-development-tools.md) — Tool library for building and maintaining GraphQL-JS servers.
