Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/twihike/nestjs-starter

🚀 Nest framework starter
https://github.com/twihike/nestjs-starter

graphql nest nestjs restful typeorm typescript

Last synced: 2 days ago
JSON representation

🚀 Nest framework starter

Awesome Lists containing this project

README

        

# NestJS starter

[![CI status](https://github.com/twihike/nestjs-starter/workflows/ci/badge.svg)](https://github.com/twihike/nestjs-starter/actions)

[NestJS](https://github.com/nestjs/nest) framework starter repository.

## Technologies

* Language
* Docs
* TypeScript:
* Packages
* typescript:

* Web Application Framework
* Docs
* NestJS:
* Packages
* @nestjs:

* Database Access
* Docs
* TypeORM:
* Supports MySQL / Postgres / SQLite And more...
* Automatic migrations generation
* Packages
* @nestjs/typeorm:
* typeorm:

* GraphQL
* Docs
* GraphQL:
* Apollo:
* TypeGraphQL:
* Packages
* @nestjs/graphql:
* apollo-server-express:
* graphql-tools:
* graphql:
* type-graphql:

* Validation
* class-validator:

* Serialization
* class-transformer:

* Security
* helmet:
* bcrypt:
* CORS: NestJS built-in

* Authentication
* Docs
* JWT:
* JWT Node.js:
* Passport:
* Packages
* @nestjs/passport:
* passport:
* @nestjs/jwt:
* passport-jwt:

* Health Check
* @nestjs/terminus:
* @godaddy/terminus:

* 12-Factor based config
* `src/config/config.service.ts`
* `src/config/config.env.ts`

* Linter
* Docs
* ESLint:
* Packages
* eslint:
* eslint-config-airbnb:
* @typescript-eslint/parser:
* @typescript-eslint/eslint-plugin:

* Formatter
* Docs
* Prettier:
* Packages
* prettier:
* eslint-config-prettier:

* Test
* Docs
* Jest:
* Packages
* jest:

* Documentation
* Docs
* Compodoc:
* Packages
* @compodoc/compodoc:

* Documentation OpenAPI
* Docs
* OpenAPI:
* Swagger UI:
* Packages
* @nestjs/swagger:
* swagger-ui-express:

## Installation

```shell
yarn global add @nestjs/cli
yarn install
```

## Running the app

```shell
# development
yarn run start

# watch mode
yarn run start:dev

# production mode
yarn run start:prod
```

## Test

```shell
# unit tests
yarn run test

# e2e tests
yarn run test:e2e

# test coverage
yarn run test:cov
```

## DB migration

```shell
# generate
yarn run migration:generate

# show all migrations
yarn run migration:show

# run
yarn run migration:run

# dry run
yarn run schema:log

# revert
yarn run migration:revert
```

## Documentation

```shell
yarn run doc
```

## How would I set this up myself

```shell
# creating a new project
yarn global add @nestjs/cli
nest new nestjs-starter
cd nestjs-starter

# database access
yarn add @nestjs/typeorm typeorm
yarn add sqlite3 pg
yarn add pluralize
yarn add -D @types/pluralize

# graphql
yarn add @nestjs/graphql apollo-server-express graphql-tools graphql
yarn add type-graphql

# validation
yarn add class-validator

# serialization
yarn add class-transformer

# security
yarn add helmet
yarn add bcrypt
yarn add -D @types/bcrypt

# auth
yarn add @nestjs/passport passport
yarn add @nestjs/jwt passport-jwt
yarn add -D @types/passport-jwt
yarn add passport-mock-strategy

# performance
yarn add compression

# health check
yarn add @nestjs/terminus @godaddy/terminus

# linter
yarn add -D eslint
yarn add -D eslint-plugin-import
yarn add -D eslint-plugin-react eslint-plugin-react-hooks
yarn add -D eslint-plugin-jsx-a11y
yarn add -D eslint-config-airbnb
yarn add -D @typescript-eslint/parser @typescript-eslint/eslint-plugin

# formatter
yarn add -D eslint-config-prettier

# documentation
yarn add -D @compodoc/compodoc

# documentation openapi
yarn add @nestjs/swagger swagger-ui-express
```