Production application boilerplate for Koa, batteries included:
- ES6 + Babel
- ESLint with the Airbnb JavaScript rules.
- ApiDoc creates a documentation from API annotations in your source code.
- Mocha Unit testing and coverage with Chai assertion framework.
- Editorconfig Consistent coding styles formatter.
- Yarn Dependency management.
- Koa.js Next generation web framework.
- Dotenv Production settings profile solution.
- JSON Web Tokens Industry standard RFC 7519 method for representing claims securely between two parties.
npm start
- start Koa with hot reload supports (default port3000
).npm run docs
- generate API docs indocs
folder (ignored by git) & start serving.
-
configurable prefixed server endpoint (
/v1
by default). -
JWT based authentication.
-
common middleware.
-
intelligent/automatic config registration.
-
intelligent/automatic routes registration.
Module created under
apps
folder with routes defined inindex.js
will be registered onto server router automatically.
// OPTIONAL prefix definition, by default, system will register the module name as its routing prefix.
// `prefix -> false` will disable prefix for this module.
export const prefix = '/<module-prefix>';
import * as mw from './middleware';
import * as views from './views';
export default {
'GET /', views.list,
'GET /:key', views.get,
'POST /', [mw.acl, views.create],
'PUT /:key', views.update,
'DELETE /:key', views.delete,
}
- module alias support
// Use this:
import MyUtilFn from 'utils/MyUtilFn';
// Instead of that:
import MyUtilFn from '../../../../utils/MyUtilFn';
- ESLint rules supports.
- NPM scripts for common operations.
-
dotenv
based multi settings profiles at server side. - Grouped routing system.
- Grouped settings system.
- unit test integration.
- hot reload koa server.
- PM2 ecosystem integration.
- common helpers.