Skip to content

jameslnewell/observable

Repository files navigation

@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

About

A super simple and light-weight observable implementation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published