Skip to content

An opinionated boilerplate for koa v2 with batteries included

License

Notifications You must be signed in to change notification settings

umayr/koa2-kickstarter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

koa2-kickstarter

An opinionated boilerplate for koa v2 with batteries included.

Setup

  # clone the repository
  λ git clone https://github.com/umayr/koa2-kickstarter
  # change the current directory
  λ cd koa2-kickstarter
  # install all dependencies
  λ npm install
  # run the project
  λ npm start

or execute the script

  λ curl -sSL https://git.io/v5yGw | bash
  # with a project name
  λ curl -sSL https://git.io/v5yGw | bash -s new-app

Structure

├── README.md           # you're here
├── bin                 # folder that bootstraps the application
├── src                 # contains source files
│   ├── conf            # wraps configurations files
│   ├── controller      # contains all controllers in the application
│   ├── middleware      # folder with all middlewares
│   ├── route           # wraps all the routes and exports a single composed middleware
│   └── service         # contains all the service logic
└── test                # unit tests

Suggestion: Every folder name is singular like route, middleware instead of routes, middlewares. If you want to add more folders as per your need, make sure they should be singular too (for e.g. util, helper etc) only for the sake of consistency.

Included

  • Koa Well, duh.
  • Koa Router For routing and all.
  • Debug Debug messages in the development environment.
  • Bunyan Extensive logging module.
  • Ava For unit tests.
  • Boom HTTP Errors.
  • Convict Configuration management.
  • Babel Support ES6/ES7 features.
  • ESLint Linting purposes (comes with extended Airbnb's base eslint configurations).
  • Nodemon Restart the server automatically (hot-reloading).

And many more small packages.

Scripts

  • npm start - simply starts the server
  • npm test - execute all unit tests
  • npm run lint - lints all the files in src/ folder
  • npm run lint:fix - fixes all the possible linting errors
  • npm run watch - starts the server with hot-reloading

Suggestion: To turn on debug messages, set DEBUG environment variable to kickstarter:*

License

MIT - Umayr Shahid <[email protected]>

About

An opinionated boilerplate for koa v2 with batteries included

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published