nodejs-graphql-template
Node.js, Koa, GraphQL and TypeScript template project.
Batteries and opinions included
Features
-
Docker
🐳 configuration for production deployment, development and testing -
GraphQL tools:
- GraphiQL
- GraphQL Voyager
- GraphQL Playground
- GraphQL IDL
- Apollo Tracing
-
Reference GraphQL Models and Connectors architecture implementation
-
CORS middleware
-
12 Factor Configuration with
.env
-
Configurable logging
- powered by
winston
- powered by
-
Supercharged Development Mode
- Incremental TypeScript builds
- Automatic server restart on changes
- Linting
-
Testing
- Unit tests
- Integration tests for GraphQL schema
-
Reporting
- Test result export to JUnit format
- Coverage result export to Cobertura format
Required Software
node
>= 8.1.4 &yarn
or
Docker
>= 17.05
Install
- yarn:
$ yarn
- Docker:
$ docker-compose up
Develop
- yarn:
$ yarn start
- Docker:
$ docker-compose up --build
Attention Windows users: when Docker for Windows
is not an option, install yarn
and run $ yarn && yarn docker-mount
beforehand.
Generate TypeScript types for GraphQL schema and default GraphQL resolvers
$ yarn gqlgen
Test
single test run
Run unit tests
$ yarn test:unit
Run integration tests
$ yarn test:integration
Run all tests
$ yarn test
Run e2e tests
Run the app or point E2E_TEST_URL to a remote instance you want to test against.
$ yarn test:e2e
Generate coverage reports
Set environment variable CI
to true to generate coverage reports.
In *nix:
CI=true yarn test
In Windows:
set CI=true&&yarn test
Build
$ yarn build
or $ docker build .
Tech Stack
-
TypeScript
-
Koa
-
GraphQL
-
Jest
-
winston
-
Docker