• Stars
    star
    27
  • Rank 905,827 (Top 18 %)
  • Language
    TypeScript
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Typescript Express Boilerplate
ts-express-boilerplate logo

Typescript Express Boilerplate

CircleCI (all branches)

This boilerplate is a generic "template" for a web application based on following modules:

Type Module
๐Ÿชฃ Web Framework ExpressJS 4
๐Ÿงฌ Orm TypeORM
๐Ÿงป Logging Winston
๐Ÿงฐ Utilities
๐Ÿฉน Testing
๐Ÿชฅ Linting
๐Ÿ‘จโ€๐ŸŽจ Artwork by faudas

๐Ÿ‡ฎ๐Ÿ‡น Made in Italy ๐Ÿ‡ฎ๐Ÿ‡น

How to start

  1. Clone repository and Install dependencies
$ git clone https://github.com/d4rkstar/ts-express-boilerplate.git my-awesome-project
$ cd my-awesome-project
$ yarn install
  1. Build sources
$ yarn run build
  1. If you need, create a database

  2. Copy .env.example to .env

  3. Edit .env file and put required variables

  4. Migrate database

  5. To run tests

$ yarn run test
  1. To start
$ yarn run start

๐Ÿ‘‰ Info

Before start coding, ensure to:

  • Remove the .git folder
  • Start a new repo, doing a git init . inside the project folder and adding files with git add .
  • Add a remote url to your git: git remote set-url origin <url>
  • Adjust the package.json author and remote git repo. Now you can use the publish.sh script command:
$ ./publish.sh "my-awesome-project" "My Awesome Project API Endpoint test" "Me"

File package.json was updated!
๐Ÿ’ฅ Removing CircleCI original dir
๐Ÿ’ฅ Removing Art original dir
๐Ÿ–‹๏ธ Generating new README.md
๐Ÿ”ฅ Republish Completed!
  • Copy .env.example to .env and adjust variables at your needs

If you need to use database and typeorm:

  • Set USE_TYPEORM to the value of 1 in .env
  • Add a database if you need it and configure datasources (under then datasources folder)

If you don't need to use database and typeorm:

  • Set USE_TYPEORM to the value of 0 in .env

To add new routes and routers, check the App::mountRoutes method.

It's quite simple to add new routes!

Docker

  1. Build image
$ docker build -t ts-express-boilerplate .
  1. Run image :)
$ docker run -d -p 3000:3000 --name ts-express-boilerplate ts-express-boilerplate:latest

Migrations :-)

Create an entity

$ yarn run typeorm entity:create src/entities/User

and modify at your needs. Then generate migration for this Entity:

$ yarn run  typeorm migration:generate -d dist/Datasource.js src/migrations/use

Finally run migrations:

$ yarn run migrate-dev

Info: migrate-dev will build js source before run migrations. If you need to run migrations in prod (!!), you can consider the migrate script. Adjust datasources at your needs.

Coding guidelines

I suggest reading this useful article:

Using ESLint and Prettier in a TypeScript Project

To activate ESlint in Webstorm, follow this link:

ESLint in Webstorm

To use ESlint from command line:

$ eslint --fix --ignore-path .eslintignore src/*.ts

Some useful references:

For testing:

Deploy to openshift