@rxjs-ninja/rxjs-boolean

Operators for RxJS for filtering with boolean logic

Usage no npm install needed!

<script type="module">
  import rxjsNinjaRxjsBoolean from 'https://cdn.skypack.dev/@rxjs-ninja/rxjs-boolean';
</script>

README

RxJS Ninja - Booleans

The RXJS Ninja Logo

rxjs-boolean

Website | API Documentation | Changelog

@rxjs-ninja/rxjs-boolean provides operators for querying, filtering and modifying boolean values, and Observable for generating boolean emitters.

Function and Operator categories

Create

Functions and Operators for creating Observable boolean values

const numbers = [0, 1, 0, 0, 1, 0, 1];
const strings = ['RxJS', '', '', 'Ninja', 'TypeScript'];

// Generate a boolean array from numbers
fromBoolean(numbers).subscribe();
// Output: `false, true, false, false, true, false, true`

// Generate a boolean array from numbers
fromBoolean(strings).subscribe();
// Output: `true, false, false, true, true`

Filter

Operators for filtering Observable sources for truthy values

const strings$ = from(['RxJS', '', '', 'Ninja', 'TypeScript', '', 'Angular']);

// Get the first truthy value
strings$.pipe(firstTruthy()).subscribe();
// Output: `RxJS`

// Get the first truthy value that is over length of 6
strings$.pipe(firstTruthy((v) => v.length > 5)).subscribe();
// Output: `TypeScript`

// Get the last truthy value
strings$.pipe(lastTruthy()).subscribe();
// Output: `Angular`

// Get the last truthy value of less than 5 characters
strings$.pipe(lastTruthy((v) => v.length < 5)).subscribe();
// Output: `RxJS`

Modify

Operators for modifying boolean values

const source$ = from([false, true, true, false]);

// Flip the boolean value
source$.pipe(flip()).subscribe();
// Output: `true, false, false, true`

Validation

Operators that provide boolean output based on checks against source values

const input = ['4485275742308327', '1111222233334444', '111133332224444'];
from(input).pipe(luhnCheck()).subscribe();
// Output: `[true, true, false]`