graphql-needle
Stitch your GraphQL schemas in a declarative way by using annotations (aka directives).
See Apollo schema stitching documentation
Example
Instead of generating a stitched schema like so:
;;; const authorLink = uri: 'https://8xz15vx5q.lp.gql.zone/graphql' fetch ;const authorSchema = await ;const authorExecutableSchema = ; const chirpLink = uri: 'https://vpzl4vxr3.lp.gql.zone/graphql' fetch ;const chirpSchema = await ;const chirpExecutableSchema = ; const linkTypeDefs = ` extend type User { chirps: [Chirp] } extend type Chirp { author: User }`; const executableSchema = ;
You can do it like so:
; const authorSchemaUri = 'https://8xz15vx5q.lp.gql.zone/graphql'; // Apollo Launchpad https://launchpad.graphql.com/vpzl4vxr3const chirpSchemaUri = 'https://vpzl4vxr3.lp.gql.zone/graphql'; // Apollo Launchpad https://launchpad.graphql.com/8xz15vx5qconst annotatedSchema = ` extend type User @schema(uri: "") { chirps: [Chirp] @stitch(keyField: "id", queryField: "chirpsByAuthorId", queryParameter: "authorId") } extend type Chirp @schema(uri: "") { author: User @stitch(keyField: "authorId", queryField: "userById", queryParameter: "id") }`; const executableSchema = await ;