Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/nestjs/terminus

Terminus module for Nest framework (node.js) :robot:
https://github.com/nestjs/terminus

javascript nest nestjs node nodejs typescript

Last synced: 7 days ago
JSON representation

Terminus module for Nest framework (node.js) :robot:

Awesome Lists containing this project

README

        


Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.



NPM Version
Package License
NPM Downloads
Discord
Backers on Open Collective
Sponsors on Open Collective



## Description

This module contains integrated healthchecks for [Nest](https://github.com/nestjs/nest).

## Installation

`@nestjs/terminus` integrates with a lot of cool technologies, such as `typeorm`, `grpc`, `mongodb`, and many more!
In case you have missed a dependency, `@nestjs/terminus` will throw an error and prompt you to install the required dependency.
So you will only install what is actually required!

```bash

npm install --save @nestjs/terminus

```

## Usage

1. Import the Terminus module
2. Make sure the additionally needed modules are available to (e.g. `TypeOrmModule`), in case you want to do Database Health Checks.

```typescript
// app.module.ts

@Module({
controllers: [HealthController],
imports:[
// Make sure TypeOrmModule is available in the module context
TypeOrmModule.forRoot({ ... }),
TerminusModule
],
})
export class HealthModule { }

```

3. Setup your `HealthController` which executes your Health Check.

```typescript
// health.controller.ts

@Controller('health')
export class HealthController {
constructor(
private health: HealthCheckService,
private db: TypeOrmHealthIndicator,
) {}

@Get()
@HealthCheck()
readiness() {
return this.health.check([
async () => this.db.pingCheck('database', { timeout: 300 }),
]);
}
}
```

If everything is set up correctly, you can access the healthcheck on `http://localhost:3000/health`.

```json
{
"status": "ok",
"info": {
"database": {
"status": "up"
}
},
"details": {
"database": {
"status": "up"
}
}
}
```

For more information, [see docs](https://docs.nestjs.com/recipes/terminus).
You can find more samples in the [samples/](https://github.com/nestjs/terminus/tree/master/sample) folder of this repository.

## Contribute

In order to get started, first read through our [Contributing guidelines](https://github.com/nestjs/terminus/blob/master/CONTRIBUTING.md).

### Setup

Setup the development environment by following these instructions:

1. Fork & Clone the repository
2. Install the dependencies

```bash
pnpm i
pnpm dev
```

In order to test the library against a sample, simply go to a sample and run
`pnpm start:dev`

```typescript
cd sample/000-dogs-app
pnpm start:dev
```

> [!NOTE]
> Once the library is rebuilt, the `pnpm start:dev` within a sample
> needs to be restarted in order to pick up the changes.

### Test

For unit testing run the following command:

```bash
pnpm test
```

For e2e testing, a Docker Compose stack is required. Make sure
Docker is installed on your machine and run the following command.

```bash
docker compose up -d
pnpm test:e2e
```

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) and [Livio Brunner](https://brunnerliv.io)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](LICENSE).