You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@cxl/rx

Package Overview
Dependencies
Maintainers
0
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cxl/rx

@cxl/rx is a lightweight reactive programming library focused on usability, performance, and type safety.

1.0.0-beta.1
latest
Source
npmnpm
Version published
Weekly downloads
1
-75%
Maintainers
0
Weekly downloads
 
Created
Source

@cxl/rx

npm version

@cxl/rx is a lightweight reactive programming library focused on usability, performance, and type safety.

Project Details

  • Branch Version: 1.0.0-beta.1
  • License: Apache-2.0
  • Documentation: Link
  • Report Issues: Github

Installation

npm install @cxl/rx

Features

  • Observable Implementation: Core observable functionality for representing asynchronous or event-based streams.
  • Subjects: Includes Subject, OrderedSubject, BehaviorSubject, ReplaySubject, and Reference for various use cases.
  • Operators: A rich collection of operators for transforming, filtering, combining, and composing observables.
  • Utility Functions: Includes tools like pipe, from, of, concat, merge, and more for observable creation and composition.
  • Built-in Cancellation: Leverages cancellation signals for efficient resource management and clean teardown.
  • Promise Interoperability: Convert promises to observables and vice versa seamlessly.
  • Minimal Dependencies: Designed for high performance with no external dependencies.

Installation

Install the package via npm:

npm install @cxl/rx

Or with yarn:

yarn add @cxl/rx

Getting Started

Create an Observable

import { observable } from '@cxl/rx';

const myObservable = observable(observer => {
	observer.next('Hello');
	observer.next('World');
	observer.complete();
});

myObservable.subscribe({
	next: value => console.log(value),
	complete: () => console.log('Done'),
});

Using Operators

import { of } from '@cxl/rx';

of(1, 2, 3, 4)
	.map(x => x * 2),
	.filter(x => x > 4),
	.subscribe(console.log); // Outputs: 6, 8

Creating a Subject

import { subject } from '@cxl/rx';

const mySubject = subject<number>();

mySubject.subscribe({
	next: value => console.log(`Observer 1: ${value}`),
});

mySubject.next(1);
mySubject.next(2);

mySubject.subscribe({
	next: value => console.log(`Observer 2: ${value}`),
});

mySubject.next(3);

Utilities

Cancellation Signals

External cancellation mechanisms for better control:

import { cancel, timer } from '@cxl/rx';

const signal = cancel();

timer(5000).subscribe({
	next: () => console.log('Completed after 5s'),
	signal, // Link the cancellation signal
});

// Cancel the timer before it completes
signal.next();

Promise Interactions

Convert promises into observables:

import { fromPromise } from '@cxl/rx';

const observable = fromPromise(Promise.resolve('Hello World'));

observable.subscribe(console.log); // Outputs: Hello World

FAQs

Package last updated on 20 Jan 2025

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