Skip to content
🚀 Starter for building APIs with Hapi + Typescript!
Branch: master
Clone or download
Latest commit 84c67d4 Jan 28, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data initial commit Jun 30, 2017
logs initial commit Jun 30, 2017
src Different approach to heroku deployments. Jan 16, 2019
test Different approach to heroku deployments. Jan 16, 2019
.env
.gitignore
Dockerfile Add support for uuid generation for user Jul 1, 2017
LICENSE
Procfile
README.md Updated readme. Jan 16, 2019
docker-compose.yml
package.json Different approach to heroku deployments. Jan 16, 2019
tsconfig.json Different approach to heroku deployments. Jan 16, 2019
tslint.json Major changes: Aug 16, 2017
yarn.lock Stop server immediately without waiting. Use Yarn for package depende… Jan 15, 2019

README.md

TypeScript + Hapi = <3

This is a super simple starter kit to develop APIs with HapiJS + TypeScript

What currently supports?

This starter kit comes with the following features:

  • Swagger-UI
  • Status Monitor
  • .env files support
  • nodemon for hot-reload
  • Pretty Console Logger with Winston
  • Work with Yarn or NPM 6 as dependency resolvers
  • Code formatting with Prettier as hook for Pre-commit
  • Dockerfile + docker-compose for development
  • Basic Test Suite with Tape
  • Coverage Report
  • Supports Heroku Deployment

Requirements

  • NodeJS 10.x
  • Yarn 1.x

How to use it?

  1. Download this project as a zip.
  2. Run yarn install
  3. Run npm run nodemon:start
  4. Visit http://localhost:8080/documentation to view swagger docs.
  5. Visit http://localhost:8080/api/users to test the REST API.
  6. Visit http://localhost:8080/status to view the status monitor.

OUTDATED: Now there's a CLI that currently support creating a new project from this repo: create-typescript-api

TODO

This is not finished, there's still a lot of things to improve. Here you got some:

  • Simple test suite - added by the help of @jcloutz
  • Add support for test coverage - added by the help of @jcloutz
  • Add GraphQL support
  • Add support for Auth with JWT or Sessions
  • Add support for TypeORM/Mongoose
  • Add support for Jenkins pipeline

Documentation

What are the package.json scripts for?

  • build-ts: Compiles typescript based on config set in tsconfig.json.
  • start: Starts node with the compiled typescript. Used by eg. Heroku.
  • docker:logs: View Docker logs
  • docker:ps: List Docker containers
  • docker:start: Start Docker container based on docker-compose.yml file.
  • docker:stop: Stop Docker container
  • nodemon:build: Starts the Nodemon using ts-node. No need to compile beforehand.
  • nodemon:start: Same as nodemon:build
  • format:lint: Runs tslint on the typescipt files, based on tslint.js settings.
  • format:prettier: Runs prettier on all ts-files.
  • postinstall: Runs build-ts script. This is used by eg. Heroku automatically.
  • test: Runs tests using nyc, and creates coverage report.

Issues

If you found a bug, or you have an answer, or whatever. Please, raise an issue.

Contributing

Of course, if you see something that you want to upgrade from this library, or a bug that needs to be solved, PRs are welcome!

License

Distributed under the MIT license. See LICENSE for more information.

You can’t perform that action at this time.