From b66247979444fb77743bd76f2f1040c85f1dd010 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Wed, 2 Feb 2022 13:56:06 +0200 Subject: [PATCH] add bool factory --- src/lib/utils/operators.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/utils/operators.ts b/src/lib/utils/operators.ts index 4835fce..347a411 100644 --- a/src/lib/utils/operators.ts +++ b/src/lib/utils/operators.ts @@ -27,3 +27,12 @@ export function shareDistinctLast(values = 1): UnaryFunction, O export const toLengthValue = (entities: unknown[]): number => entities?.length ?? 0; export const getLength = pipe(map(toLengthValue), distinctUntilChanged()); + +export function boolFactory(obs: Observable, project: (value: T) => boolean): Observable[] { + const result = obs.pipe(map(project), shareDistinctLast()); + const inverse = result.pipe( + map(value => !value), + shareDistinctLast(), + ); + return [result, inverse]; +}