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

rx-utils

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rx-utils

High-level RxJS utils

latest
Source
npmnpm
Version
2.0.2
Version published
Maintainers
1
Created
Source

RxJS utils

High-level RxJS operators.

Legend

stateless stream: --x--y-->
stateful stream:  ==x==y==>

Stateless stream is a stream of events. Stateful stream is a stream of data having the value "between" the events. Stateful streams in RxJS can be made by statelessStream.shareReplay(1).

Dependencies

  • RxJS (peer)

Here and below Rx.Observable type may be aliased as Obs and its instances as O for brevity.

API

passIfHigh :: Obs b -> Obs a -> Obs a

Passes values from a$ further when b$ is truthy.

Example: TODO

passIfLow :: Obs b -> Obs a -> Obs a

Passes values from a$ instance further when b$ is falsy.

Example: TODO

passIfUp :: Obs b -> Obs a -> Obs a

Passes values from a$ further when b$ is truthy, including the switch moment.

Example: TODO

passIfDown :: Obs b -> Obs a -> Obs a

Passes values from a$ further when b$ is falsy, including the switch moment.

Example:

state
  .let(passIfDown(lock))

// lock:   1==========0=========>
// state:  ---s1---s2------s3--->
// result: -----------s2---s3--->

mergeObj :: Object (Obs *) -> Obs *

Merges an object of streams to a stream of objects.

Example:

// Describe reactive state declaratively
let actions = {
  inc: O.of(c => c + 1).delay(1000),
  dec: O.of(c => c - 1).delay(2000),
}

let state = mergeObj(actions)
 .startWith(seed)
 .scan((state, fn) => fn(state))
 .shareReplay(1)

// inc:   ------f------->
// dec:   ----------f--->
// state: 0=====1===0===>

combineLatestObj :: Object (Obs *) -> Obs *

Combines an object of streams to a stream of objects.

Example:

// Update React(-like) props whenever stateful streams change
let streamsToProps = {
  counterX: db$.pluck("counterX"),
  counterY: db$.pluck("counterY"),
}

combineLatestObj(streamsToProps)
  .throttleTime(10)
  .subscribe((data) => {
    this.setState(data)
  })

// counterX: ===x1========x2===>
// counterY: ========y1========>
// result:   ---!----!----!---->

mergeObjTracking :: Object (Obs *) -> Obs {key :: String, value :: *}

Merges an object of streams to a stream of objects, keeping the original key data.

Example:

// Track the actions
let actions = {
  add: O.of(1, 2).concatMap((fn, i) => O.of(fn).delay(1000)),
  sub: O.of(3, 4).delay(2000).concatMap((fn, i) => O.of(fn).delay(1000)),
}

let track = mergeObjTracking(actions)
track.subscribe(pack => {
  console.log(pack.key + "(" + pack.data + ")")
})

// add(1)
// add(2)
// sub(3)
// sub(4)

chan :: (Obs a -> Obs b) -> Obs (a -> b)

Overloaded: chan :: a -> ()

Makes a callable observable.

Example: TODo

License

MIT

Keywords

reactive

FAQs

Package last updated on 09 Jan 2018

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