rsnext/examples/with-typescript-graphql
2020-06-10 04:14:53 +00:00
..
lib [Examples] Move with-typescript-graphql to SSG (#13854) 2020-06-10 04:14:53 +00:00
pages [Examples] Move with-typescript-graphql to SSG (#13854) 2020-06-10 04:14:53 +00:00
.gitignore [Examples] Move with-typescript-graphql to SSG (#13854) 2020-06-10 04:14:53 +00:00
.graphql-let.yml [examples/with-typescript-graphql] Add "createResolverContext" hook, etc. (#11681) 2020-05-04 17:09:39 -05:00
next-env.d.ts Proposing a new example "with-typescript-graphql" (#9803) 2020-01-08 13:39:00 -05:00
next.config.js [examples/with-typescript-graphql] Add "createResolverContext" hook, etc. (#11681) 2020-05-04 17:09:39 -05:00
package.json [Examples] Move with-typescript-graphql to SSG (#13854) 2020-06-10 04:14:53 +00:00
README.md [Examples] Move with-typescript-graphql to SSG (#13854) 2020-06-10 04:14:53 +00:00
tsconfig.json Proposing a new example "with-typescript-graphql" (#9803) 2020-01-08 13:39:00 -05:00

TypeScript and GraphQL Example

One of the strengths of GraphQL is enforcing data types on runtime. Further, TypeScript and GraphQL Code Generator (graphql-codegen) make it safer by typing data statically, so you can write truly type-protected code with rich IDE assists.

This template extends Apollo Server and Client Example by rewriting in TypeScript and integrating graphql-let, which runs TypeScript React Apollo in graphql-codegen under the hood. It enhances the typed GraphQL use as below:

import { useNewsQuery } from './news.graphql'

const News = () => {
	// Typed already
	const { data: { news } } = useNewsQuery()

	return <div>{news.map(...)}</div>
}

By default **/*.graphqls is recognized as GraphQL schema and **/*.graphql as GraphQL documents. If you prefer the other extensions, make sure the settings of the webpack loader in next.config.js and .graphql-let.yml are consistent.

Deploy your own

Deploy the example using Vercel:

Deploy with Vercel

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example with-typescript-graphql with-typescript-graphql-app
# or
yarn create next-app --example with-typescript-graphql with-typescript-graphql-app

Download manually

Download the example:

curl https://codeload.github.com/vercel/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-typescript-graphql
cd with-typescript-graphql

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Deploy it to the cloud with Vercel (Documentation).