This is a simple Typescript Skeleton/Boilerplate project to help you get started with Express in a few minutes.
Simply clone this repository and running npm i
to get all dependencies installed. After completed run command below to run the development server.
npm run dev
Get ready for production? run command below to transpile targeting commonjs script.
npm run build
Start the transpiled script
npm start
npm run lint
This project was setup using OvernightJS typescript decorator to help you managing the controllers & the express behaviors. Take a look into src/controllers/UserController.ts
to get you inspired!.
As mentioned before, you can see the example of controller on src/controllers/UserController.ts
. It has several api endpoint examples also with error exception.
Middlewares are placed into src/middlewares
directory, everything about middleware should be dropped here.
This project already supplied with some basic Exception class, see src/exceptions
for the details. Also take a look into implementation on controllers/UserController.ts
and middlewares/error*.ts
for more detail usage.
Middlewares are placed into src/interfaces
directory, everything about interface should be dropped here.
Interact with database using SequelizeJs through typescript decorator via sequelize-typescript.
Migrations & Seeders are defined on bootstrap/sequelize
folder, and models are placed on src/repositories/pg/models
.
See the example of using models on `src/controllers/UserController.ts' for faster adaptation.
-
new:migration
: Create new migrationnpm run new:migration 'create-table-user'
-
new:seed
: Create new seedersnpm run new:seed 'initialize-user-admin'
-
run:migration
: Running existing migrationsnpm run run:migration
-
run:migration:undo
: Undo the migration one-stepnpm run run:migration:undo
-
run:migration:undo-all
: Undo all the migrationsnpm run run:migration:undo:all
-
run:migration:undo-until <migration-file>
: Undo all the migrations until specific migration targetnpm run run:migration:undo-until 20190715055658-create-user-table
-
new:seed
: Create new seedernpm run new:seed initial-user
-
run:seed
: Run all seedersnpm run run:seed
-
run:seed:undo
: Undo the seeds one-stepnpm run run:seed:undo
-
run:seed:undo-all
: Undo all the seedsnpm run run:seed:undo-all
This project shipped with a simple code generator borrows from hyphen
. Some templates already setup on bootstrap/generator
for initial project.
Example Command
node ./gen.js controller new Auth --endpoint_base api/auth
The command above will generate new controller file called AuthController.ts
with setup api endpoint to api/auth
.
You can create more template like this with different options and purpose tost up the productivity. See the template example on generator/controller/new
directory and visit http://www.hygen.io/generators for further possibility.
This project is licensed under the MIT License