# rxjs-stream-monitor

> stream monitor utility for rxjs

Latest version **5.0.1** (published 2025-05-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install rxjs-stream-monitor
pnpm add rxjs-stream-monitor
yarn add rxjs-stream-monitor
bun add rxjs-stream-monitor
```

## Health

**Score 35/100 (D)** — status: maintenance-mode.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 5.0.1 |
| Published | 2025-05-19 |
| First published | 2021-06-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 88.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Bence Ujj |
| Maintainers | ehog90 |
| Keywords | rxjs, stream, monitor |

## Links

- npm: https://www.npmjs.com/package/rxjs-stream-monitor
- Repository: https://github.com/ehog90/rxjs-stream-monitor
- Homepage: https://github.com/ehog90/rxjs-stream-monitor#readme
- Issues: https://github.com/ehog90/rxjs-stream-monitor/issues
- npm.io page: https://npm.io/package/rxjs-stream-monitor

## Dependencies (1)

- [ts-node](https://npm.io/package/ts-node.md) ^10.9.2

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 5.0.1 (latest) — 2025-05-19
- 5.0.0 — 2025-05-19
- 4.0.0 — 2025-05-19
- 3.0.0 — 2022-12-09
- 2.0.1 — 2021-11-03
- 1.2.3 — 2021-08-05
- 1.2.2 — 2021-07-21
- 1.2.1 — 2021-07-02
- 1.2.0 — 2021-07-02
- 1.1.1 — 2021-06-08
- 1.0.0 — 2021-06-07
- 0.0.2 — 2021-06-07
- 0.0.1 — 2021-06-07

## README

# RxJS Stream Monitor
## Simple utility to monitor the status of an observable


![license](https://img.shields.io/github/license/ehog90/rxjs-stream-monitor)
![github action status](https://github.com/ehog90/rxjs-stream-monitor/actions/workflows/push-actions.yml/badge.svg?branch=main)
![npm weekly downloads](https://img.shields.io/npm/dw/rxjs-stream-monitor)
![npm total downloads](https://img.shields.io/npm/dt/rxjs-stream-monitor)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

### Requirements

rxjs 5+

### Install.

```bash
npm install rxjs-stream-monitor --save

```

### How to use.

Propably you are familiar with this pattern in Angular if you are querying for some data

```typescript

public class SomeComponent {
    // ...

    public loadSomeData() {
       this.isDataLoading = true;
       this.dataQueryError = null;
       this.data = null;
       
       this.httpDataService.querySomeData()
          .subscribe(response => {
             this.data = response;
             this.isDataLoading = false;
          }, 
          error => {
             this.dataQueryError = error;
             this.isDataLoading = false;
          });
    }
}

```

With this library, you can simplify the status monitoring like this:

```typescript

import { createMonitor, monitor } from "rxjs-stream-monitor";

public class SomeComponent {
    // ...
    public queryMonitor = createMonitor();

    public loadSomeData() {
       this.httpDataService.querySomeData()
          .pipe(monitor(this.queryMonitor))
          .subscribe(response => {
             this.data = response;
          })
    }
}

```

### Example of status binding in Angular.

In the Angular template, you can bind the status to loading indicators like this: 


```html
<div class="loading" *ngIf="queryMonitor.isActive"></div>
<div class="error" *ngIf="queryMonitor.isEr">Error: {{queryMonitor.error}}</div>

```

Even you can get the number of messages received if you are piping it to an infinit observable / observable with multiple values:


```html
<div class="message-count">Messages Received: {{queryMonitor.pumps}}</div>
```

### You can also use this library for handling status of Promises.

This is useful when you are mixing Promises and Observables.

```typescript

import { createMonitor, monitorPromise } from "rxjs-stream-monitor";

public class SomeComponent {
    // ...
    public queryMonitor = createMonitor();

    public async loadSomeData() {
       const query: Promise<any> = this.httpDataService.querySomeDataUsingPromiseApi();
       const result = await monitorPromise(this.queryMonitor, query);
    }
}
```

---
_Source: https://npm.io/package/rxjs-stream-monitor · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
