@lifaon/rx-js-light
TypeScript icon, indicating that this package has built-in type declarations

2.2.0 • Public • Published

npm (scoped) npm NPM npm type definitions

rx-js-light

rx-js-light is simply the fastest and smallest javascript library for Reactive Programming, providing different tools to generate, consume, and pipe Observables and Observers.

If Reactive Programming does not tell you much or is a new concept to you, you may take a look at this tutorial. In a few words, if you deal frequently with async programming like events, timeouts, promises or streams (ex: front-end development), then rx-js-light is the perfect candidate for you.

Example: emulate double click

const subscribe = pipe$$(fromEventTarget(window, 'click'), [
  bufferTime$$$(500),
  filter$$$((events: PointerEvent[]) => events.length === 2),
  map$$$((events: PointerEvent[]) => events[events.length - 1]),
]);

subscribe((event: PointerEvent) => {
  console.log('double click', event);
});

Click here to see the live demo

Give it a try, and you'll love it !

📖 Table of content

📦 Installation

yarn add @lifaon/rx-js-light
# or
npm install @lifaon/rx-js-light --save

Click here to read the installation manual

📕 Documentation

Most of public functions or interfaces have their own documentation into a .md file in their respective directories.

🧲️ Pick the right function

I want to:

create an Observable from

without notifications

with notifications

convert an Observable to

without notifications

with notifications

create an ObservablePipe which

without notifications

with notifications

emit a value myself => create a Source which emits values to

others

🔥: most important functions

Can't find a function that suits your needs ? Open a discussion, or create your own and share it !

Differences with RxJS:

  • no classes: this choice allows blazing fast performances and very small bundle size. Indeed, creating a class with the new keyword is slow, and method names can't be mangled (minimized), where function calls are really well optimized by javascript engines. However, it has a minor cost: chaining operators or method calls are done through functions, which is a little less elegant (in terms of code readability).

  • no next, complete and error: instead this lib uses notifications. In reality, not all Observables require to emit a final state. For example, the RxJS interval never reaches a complete state. It just sends numbers. Moreover, some Observables may want to emit more than this 3 events: we may imagine an XHR Observable which emits an upload-progress and download-progress events.

  • some concepts / operators / methods may have a different behaviour or name. Take care to read the documentation before any hasty use.

Package Sidebar

Install

npm i @lifaon/rx-js-light

Weekly Downloads

2

Version

2.2.0

License

MIT

Unpacked Size

1.02 MB

Total Files

2584

Last publish

Collaborators

  • lifaon74