Giter VIP home page Giter VIP logo

node-ts-starter-fastify's Introduction

NodeFactory

NodeJs Typescript Starter

CI check Coverage Status GitHub license Twitter

Starter repository for developing fast API services with typescript and fastify. Docker friendly with default CI configuration.

Requirements

Following software is required to be installed to use this repo:

Usage

  • yarn install - will run and configure everything for you

Database

  • use yarn db:migration:new <class name> to generate new empty migration file (same goes for entity and subscriber)
  • use docker-compose exec backend yarn db:migration:generate <class name> to generate new auto generated migration
  • yarn db:migrate - runs all pending migrations against database
  • yarn db:revert - reverts last migration, run multiple times to revert everything
  • yarn db:seed - seeds database with fake data (src/services/db/seeders)
  • yarn run test:unit - runs unit tests with coverage
  • yarn run lint runs following commands:
    • yarn run lint:style - runs eslint against source code
    • yarn run lint:types - checks typescript types
  • yarn run start:dev - runs docker-compose with your server and database, app will autoreload on changes

node-ts-starter-fastify's People

Contributors

dependabot[bot] avatar mpetrun5 avatar mpetrunic avatar nmlinaric avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

node-ts-starter-fastify's Issues

Add e2e tests

  • add simple e2e tests that queries database
  • add to ci e2e test runs in docker

Update dependencies

  • important major updates:

    • fastify
    • typescript
  • update all minor and patch versions to latest

Group routes

depends on: #33

Instead of registering all routes in single file/function,
we should group routes.

For example:

instance.register(async function(instance) {
   instance.get("/users", ....) // /v1/users
  
   instance.register(adminRoutes, {prefix: "/admin"}) // /v1/admin/*

}, {prefix: "/v1"})

Reduce typeorm envs

Instead of:
TYPEORM_MIGRATIONS=src/migrations/.ts
TYPEORM_MIGRATIONS_DIR=src/migrations
TYPEORM_ENTITIES=src/entities/
.ts
TYPEORM_ENTITIES_DIR=src/entities
TYPEORM_SUBSCRIBERS_DIR=src/subscribers
TYPEORM_SUBSCRIBERS=src/subscribers/.ts
TYPEORM_SEEDING_FACTORIES=src/services/db/factories/**/
{.ts,.js}
TYPEORM_SEEDING_SEEDS=src/services/db/seeders/**/*{.ts,.js}

have:
ROOT_DIR=/src

Keep in mind that extension should be by default .ts or .js

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.