Skip to content

stepci/garph

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
www
 
 
 
 
 
 
 
 
 
 

garph

Screen.Recording.2023-02-27.at.19.32.45.mov

Warning: We would love to hear your Feedback on our Discord

Note: tRPC-style client for Garph has arrived! See garph-gqty for more πŸš€

Garph is a fullstack GraphQL framework for TypeScript, that aims to deliver the best GraphQL Developer-Experience.

Garph 0.5 was just released! πŸ™Œ

Changelog:

  • Updated the React-client
  • Added GraphQL Subscriptions
  • Cursor-based pagination
  • Included Relay building blocks (nodes, edges, connections)
  • Additional type-safety for resolvers
  • Updated Documentation

Get started

  1. Install the dependencies

    npm i garph graphql-yoga
    
  2. Create example GraphQL API

    import { g, InferResolvers, buildSchema } from 'garph'
    import { createYoga } from 'graphql-yoga'
    import { createServer } from 'http'
    
    const queryType = g.type('Query', {
      greet: g.string()
        .args({
          name: g.string().optional().default('Max')
        })
        .description('Greets a person')
    })
    
    const resolvers: InferResolvers<{ Query: typeof queryType }, {}> = {
      Query: {
        greet: (parent, args, context, info) => `Hello, ${args.name}`
      }
    }
    
    const schema = buildSchema({ g, resolvers })
    const yoga = createYoga({ schema })
    const server = createServer(yoga)
    server.listen(4000, () => {
      console.info('Server is running on http://localhost:4000/graphql')
    })
  3. Start the server

    npx ts-node server.ts
    
  4. Query the API

    Go to: http://localhost:4000/graphl

    Enter the following query:

    {
      greet(name: "Max")
    }

    Click on the play button

Documentation

Documentation is available on garph.dev/docs

Examples

Example projects can be found under examples/

Feedback

We would love to hear your Feedback on our Discord community