New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

split-if

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

split-if

RxJS operator. Packs all the source Observable values into arrays. New array is emitted every time a predicate is fulfilled.

latest
Source
npmnpm
Version
1.0.4
Version published
Maintainers
1
Created
Source

build Code Style: Google

split-if

RxJS operator. Packs all the source Observable values into arrays. New array is emitted every time a predicate is fulfilled.

See RxJS

Examples

Example 1 (split by value)

const {from} = require('rxjs');
const {splitIf} = require('split-if');

const src = from([4, 8, 1, 3, 5, 1, 1, 6, 8]).pipe(splitIf(x => x === 1));
const res = [];
src.subscribe(x => res.push(x));
console.log(res);
//=> [ [ 4, 8 ], [ 1, 3, 5 ], [ 1 ], [ 1, 6, 8 ] ]

Example 2 (split by index)

We can easily make a partitionN RxJS operator using splitIf:

import {OperatorFunction} from 'rxjs';
import {splitIf} from 'split-if';

const partitionN = <T>(n: number): OperatorFunction<T, T[]> =>
  splitIf((_: T, i: number) => i % n === 0);

Let's use it:

import {from} from 'rxjs';

const src = from([4, 8, 1, 3, 5, 4, 1, 6, 8, -1, 2]).pipe(partitionN(3));
const res: number[][] = [];
src.subscribe((x: number[]) => res.push(x));
console.log(res);
//=> [ [ 4, 8, 1 ], [ 3, 5, 4 ], [ 1, 6, 8 ], [ -1, 2 ] ]

Why to use

  • Typed. With d.ts for Javascript.
  • Well tested. 100% code coverage.

Installation

$ npm install split-if

Usage

Typescript / ES module:

import {splitIf} from 'split-if';

Javascript / CommonJS:

const {splitIf} = require('split-if');

API

function splitIf<T>(
  predicate: (value: T, index: number) => boolean,
  thisArg?: any
): OperatorFunction<T, T[]>;

Where its OperatorFunction<T, T[]> can be substituted for:

(source: Observable<T>) => Observable<T[]>;

See: RxJS OperatorFunction

Parameters

T{any}The type of Observable's value.
predicate{(value: T, index: number) => boolean}A function that evaluates each value emitted by the source Observable. If it returns true, a new array of previous 'buffered' values is emitted. The index parameter is the number i for the i-th source emission that has happened since the subscription, starting from the number 0.
thisArg{any}Optional. Default is undefined. An optional argument to determine the value of this in the predicate function.

Returns

A function that returns an Observable that emits arrays of all items from the source Observable. These arrays are emitted every time a predicate is fulfilled.

Keywords

predicate

FAQs

Package last updated on 19 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts