microservice-controller

A non intrusive set of tools to help structure and test simple microservices based on REST APIs using expressjs and typescript.

Usage no npm install needed!

<script type="module">
  import microserviceController from 'https://cdn.skypack.dev/microservice-controller';
</script>

README

Microservice Controller (BETA)

version downloads collaborators lines

A non intrusive set of tools to help structure and test simple microservices based on REST APIs using expressjs and typescript.

🚨 Build Health

pipeline coverage quality

reliability security maintainability vulnerabilities bugs duplications smells debt

✨ Features

  • ExpressController : a set of non-intrusive decorators to create epressjs applications
  • EnvConfig : a config manager to handle multiple environments configurations
  • Status : a module to export liveness end points

🎧 Dev Features

  • Typescript libraty compilation
  • Unit tests using jest
  • Integration tests using cucumber
  • Code quality repports
  • Swagger documentations
  • ESLint for static code analyse
  • Prettier for code style consistency
  • Editor config settings for file format consistency
  • Versioned yarn as package manager
  • Husky in order to control push process and commit rules
  • Commit linter with standards versions following conventions of conventional commits
  • Change log automatic generation
  • Version bump management based on commit categories

⚙️ Setup

🎁 How to use it

Run make dev in order to develop and start docker images in dev mode. Or run make to see all available commands.

Otherwise, if you prefer, you can run scripts directly from the project code. Run yarn run to see all scripts configurated on package.json, exemple : yarn start:watch to start a stand alone instance of the server in watch mode.

💎 How to test it

Run make test in order to run all pipeline tests or run specifically a test listed on project :

  • make tl : static test on src code
  • make tr : vulnerability test on package and its dependencies
  • make tu : unit test on src code

🚀 CI / CD

This project follows the gitflow Workflow to implement continuous integration and continuous deployement.

📖 Documentations

Run yarn doc:swagger to generate the swagger file with the project API.

🏆 Quality

In order to monitoring the quality, this project is equiped with sonar configuration.
You can find the sonar results in sonar.

♻️ Contributing

Do you want to evolve this project ? Your are more than welcome :-)
Take a look in our code of conduct to contribute and the process for submitting pull requests to us.