subgraphql
v0.0.0-rfc.34
Published
### A Tool to easily launch subgraph flavoured graphql servers via graphql-yoga
Downloads
6
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 subgraphql
Import
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-yoga
withsubgraphql
and 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
subgraphql
with node:$ node ./[filename].js
Or expose as a
next.js
endpoint (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.js
as normal:$ yarn dev
Checkout the examples directory for more details...