Skip to content
This repository was archived by the owner on Oct 2, 2019. It is now read-only.

ctco/nodejs-graphql-template

Repository files navigation

Maintenance PRs Welcome Build Status TravisCI Build Status AppVeyor dependencies Status devDependencies Status

nodejs-graphql-template

Node.js, Koa, GraphQL and TypeScript template project with batteries included.

Features

  • Docker 🐳 configuration for production deployment, development and testing
  • GraphQL tools:
    • GraphiQL
    • GraphQL Voyager
    • GraphQL IDL
  • CORS middleware
  • 12 Factor Configuration with .env
  • Configurable logging
    • powered by winston
  • 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 & npm / yarn

or

  • Docker >= 17.05

Install

  • npm: $ npm i
  • yarn: $ yarn
  • Docker: $ docker-compose up

Develop

  • npm: $ npm start
  • 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.

Test

single test run

Run unit tests

  • npm: $ npm run test:unit
  • yarn: $ yarn test:unit
  • Docker: $ docker-compose -f docker-compose.test.yml run sut test:unit

Run integration tests

  • npm: $ npm run test:integration
  • yarn: $ yarn test:integration
  • Docker: $ docker-compose -f docker-compose.test.yml run sut test:integration

Run all tests

  • npm: $ npm test
  • yarn: $ yarn test
  • Docker: $ docker-compose -f docker-compose.test.yml run sut

Generate coverage reports

Set environment variable CI to true to generate coverage reports.

In *nix:

CI=true npm test

In Windows:

set CI=true&&npm test

In Docker:

docker-compose -f docker-compose.test.yml run -e CI=true sut

Build

$ npm run build or $ yarn build or $ docker build .

Tech Stack

Releases

No releases published

Packages

No packages published

Contributors 5