subgraphql
v0.0.0-rfc.34
Published
### A Tool to easily launch subgraph flavoured graphql servers via graphql-yoga
Readme
@windranger-io - subgraphql
A Tool to easily launch subgraph flavoured graphql servers via graphql-yoga
SubgraphQL is a tool that helps convert GraphProtocol subgraph-style schema.graphql files into functional graphql-yoga servers.
Simply provide the content of your subgraph's schema.graphql and a valid entities object, and subgraphql will expose the resultant GraphQL schema as a server. It can be used in either a Node.js environment or as a Next.js endpoint.
Getting started
Install
subgraphql:$ yarn add subgraphqlImport
subgraphql:import { createSubgraph } from 'subgraphql'Construct your schema and 1:1 mapped entities:
const schema = ` # id = \`\${owner}\` type Name @entity { id: ID! name: String owner: Bytes number: BigNumber } ` const entities = { Name: [ { id: '0', name: 'grezle', owner: '0x0...', number: '0848293943825030', }, ], }Setup
graphql-yogawithsubgraphqland expose as a server (example):import * as http from 'http' const subgraph = createSubgraph({ schema, entities, name?: ``, // follow graphprotocol naming - `/subgraphs/name/${name}/graphql` graphqlEndpoint?: ``, // override name and set the full graphqlEndpoint uri defaultQuery?: ` { names { id name number owner } }` }); const server = http.createServer(subgraph) server.listen(4001, () => { console.info('Server is running on http://localhost:4001/api/graphql') })* Start
subgraphqlwith node:$ node ./[filename].jsOr expose as a
next.jsendpoint (example):import type { NextApiRequest, NextApiResponse } from 'next' export default createSubgraph<NextApiRequest, NextApiResponse>({ schema, entities, graphqlEndpoint: `/api/graphql`, // this _must_ match the current route defaultQuery: ` { names { id name number owner } }`, })* Start
next.jsas normal:$ yarn dev
Checkout the examples directory for more details...
