Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
rxjs-compat
Advanced tools
The rxjs-compat package provides backward compatibility for RxJS 5.x codebases when upgrading to RxJS 6.x. It allows developers to use the old import paths and APIs while transitioning to the new version.
Backward Compatibility
This feature allows you to use the old RxJS 5.x import paths and operators in your codebase. The code sample demonstrates how to import and use the `map` operator from RxJS 5.x in an RxJS 6.x environment.
import { Observable } from 'rxjs-compat/Observable';
import 'rxjs-compat/add/operator/map';
const observable = Observable.of(1, 2, 3).map(x => x * x);
observable.subscribe(value => console.log(value));
Operator Patching
This feature allows you to patch operators onto the Observable prototype, similar to how it was done in RxJS 5.x. The code sample demonstrates how to use the `filter` operator in an RxJS 6.x environment.
import { Observable } from 'rxjs-compat';
import 'rxjs-compat/add/operator/filter';
const observable = Observable.of(1, 2, 3, 4, 5).filter(x => x % 2 === 0);
observable.subscribe(value => console.log(value));
Static Methods
This feature allows you to use static methods like `of` from RxJS 5.x. The code sample demonstrates how to create an observable using the `of` static method.
import { Observable } from 'rxjs-compat/Observable';
const observable = Observable.of(1, 2, 3);
observable.subscribe(value => console.log(value));
RxJS (Reactive Extensions for JavaScript) is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. RxJS 6.x is the latest version and includes a new modular architecture, improved performance, and better debugging capabilities. Unlike rxjs-compat, it does not provide backward compatibility for RxJS 5.x code.
Bacon.js is a functional reactive programming library for JavaScript. It provides similar functionalities to RxJS, such as event streams and property values, but with a different API and approach. Bacon.js focuses on simplicity and ease of use, whereas RxJS offers a more comprehensive set of operators and features.
Most.js is a reactive programming library that focuses on high performance and minimalism. It provides a small but powerful set of operators for working with streams. Most.js is designed to be fast and efficient, making it suitable for performance-critical applications. Unlike rxjs-compat, it does not offer backward compatibility for older versions of RxJS.
Find out how to update to v6, automatically update your TypeScript code, and more!
Reactive Extensions Library for JavaScript. This is a rewrite of Reactive-Extensions/RxJS and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface.
npm install rxjs
By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the Contributor Code of Conduct. Much like traffic laws, ignorance doesn't grant you immunity.
npm install rxjs
It's recommended to pull in the Observable creation methods you need directly from 'rxjs'
as shown below with range
. And you can pull in any operator you need from one spot, under 'rxjs/operators'
.
import { range } from 'rxjs';
import { map, filter } from 'rxjs/operators';
range(1, 200).pipe(
filter(x => x % 2 === 1),
map(x => x + x)
).subscribe(x => console.log(x));
Here, we're using the built-in pipe
method on Observables to combine operators. See pipeable operators for more information.
To install this library for CommonJS (CJS) usage, use the following command:
npm install rxjs
(Note: destructuring available in Node 8+)
const { range } = require('rxjs');
const { map, filter } = require('rxjs/operators');
range(1, 200).pipe(
filter(x => x % 2 === 1),
map(x => x + x)
).subscribe(x => console.log(x));
For CDN, you can use unpkg:
https://unpkg.com/rxjs/bundles/rxjs.umd.min.js
The global namespace for rxjs is rxjs
:
const { range } = rxjs;
const { map, filter } = rxjs.operators;
range(1, 200).pipe(
filter(x => x % 2 === 1),
map(x => x + x)
).subscribe(x => console.log(x));
npm run build_all
- builds everythingnpm test
- runs testsnpm run test_no_cache
- run test with ts-node
set to falseRun npm run build_perf
or npm run perf
to run the performance tests with protractor
.
Run npm run perf_micro [operator]
to run micro performance test benchmarking operator.
We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the documentation directory.
The script npm run tests2png
requires some native packages installed locally: imagemagick
, graphicsmagick
, and ghostscript
.
For Mac OS X with Homebrew:
brew install imagemagick
brew install graphicsmagick
brew install ghostscript
mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript
For Debian Linux:
sudo add-apt-repository ppa:dhor/myway
apt-get install imagemagick
apt-get install graphicsmagick
apt-get install ghostscript
For Windows and other Operating Systems, check the download instructions here:
FAQs
[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x) [![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs) [![Join the chat
We found that rxjs-compat demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.