npm.io
1.5.0 • Published 5 years ago

@jameslnewell/observable

Licence
MIT
Version
1.5.0
Deps
0
Size
37 kB
Vulns
0
Weekly
0

@jameslnewell/observable

npm (scoped) Bundle Size Actions Status

A super simple and light-weight observable implementation.

Installation

yarn add @jameslnewell/observable

Usage

const {create, map, pipe} from '@jameslnewell/observable';

const numbers = (ms = 1000) => create(subscriber => {
  let count = 0;
  const handle = setInterval(() => subscriber.next(count++), ms);
  return () => clearInterval(handle);
});

const letters = pipe(map(number => String.fromCharCode(65 + number)))(numbers())

const subscription = letters.subscribe({
  next: data => console.log(data),
  error: error => console.error(error),
  completed: () => console.log('completed')
});

subscription.unsubscribe();

API

fromArray(array)
fromError(array)
create(factory): Observable
map(fn)(observable): Observable
delay(ms)(observable): Observable
pipe(fn1, fn2, fn3)(Observable): Observable
isObservable(value): boolean
firstValueFrom(observable: Observable): Promise
lastValueFrom(observable: Observable): Promise

Keywords