Installation
Before getting started with TypeGraphQL we need to install some additional dependencies and properly configure TypeScript configuration for our project.
Prerequisites
Before you begin, make sure your development environment includes Node.js and npm.
Packages installation
First, you have to install the main package, as well as the graphql-js
(and it's typings) which is a peer dependency of TypeGraphQL:
npm i graphql @types/graphql type-graphql
Also, the reflect-metadata
shim is required to make the type reflection works:
npm i reflect-metadata
Please make sure to import it on top of your entry file (before you use/import type-graphql
or your resolvers):
import "reflect-metadata";
TypeScript configuration
It's important to set these options in tsconfig.json
file of your project:
{
"emitDecoratorMetadata": true,
"experimentalDecorators": true
}
TypeGraphQL
is designed to work with Node.js 6, 8 and latest stable. It uses features from ES7 (ES2016) so you should set your tsconfig.json
appropriately:
{
"target": "es2016" // or newer if your node.js version supports this
}
Due to using graphql-subscription
dependency that rely on an AsyncIterator
, you may also have to provide the esnext.asynciterable
to the lib
option:
{
"lib": ["es2016", "esnext.asynciterable"]
}
All in all, the minimal tsconfig.json
file example looks like this:
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"lib": ["es2016", "esnext.asynciterable"],
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}