Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ReactiveX/rxjs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0e669b8dc128585a27bd8036c37747b541ab6a51
Choose a base ref
..
head repository: ReactiveX/rxjs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: a1b18ec3478f8706137934b41a79d67a25aeb4fd
Choose a head ref
Showing with 346 additions and 142 deletions.
  1. +21 −0 CHANGELOG.md
  2. +69 −49 MIGRATION.md
  3. +2 −2 README.md
  4. +2 −2 package.json
  5. +36 −0 spec/operators/race-spec.ts
  6. +1 −1 src/Observable.ts
  7. +1 −1 src/observable/ConnectableObservable.ts
  8. +6 −0 src/observable/DeferObservable.ts
  9. +6 −0 src/observable/EmptyObservable.ts
  10. +4 −0 src/observable/FromEventObservable.ts
  11. +6 −0 src/observable/FromObservable.ts
  12. +3 −2 src/observable/SubscribeOnObservable.ts
  13. +5 −0 src/observable/combineLatest.ts
  14. +1 −1 src/operator/audit.ts
  15. +1 −1 src/operator/auditTime.ts
  16. +1 −1 src/operator/buffer.ts
  17. +1 −1 src/operator/bufferCount.ts
  18. +1 −1 src/operator/bufferTime.ts
  19. +2 −2 src/operator/bufferToggle.ts
  20. +1 −1 src/operator/bufferWhen.ts
  21. +1 −1 src/operator/catch.ts
  22. +6 −1 src/operator/combineLatest.ts
  23. +18 −0 src/operator/concat.ts
  24. +6 −0 src/operator/concatAll.ts
  25. +6 −0 src/operator/concatMap.ts
  26. +6 −0 src/operator/concatMapTo.ts
  27. +4 −1 src/operator/count.ts
  28. +1 −1 src/operator/debounce.ts
  29. +1 −1 src/operator/debounceTime.ts
  30. +1 −1 src/operator/defaultIfEmpty.ts
  31. +1 −1 src/operator/delay.ts
  32. +1 −1 src/operator/delayWhen.ts
  33. +6 −1 src/operator/dematerialize.ts
  34. +1 −1 src/operator/distinct.ts
  35. +1 −1 src/operator/distinctUntilChanged.ts
  36. +1 −1 src/operator/do.ts
  37. +6 −1 src/operator/elementAt.ts
  38. +1 −1 src/operator/every.ts
  39. +1 −1 src/operator/exhaust.ts
  40. +1 −1 src/operator/exhaustMap.ts
  41. +1 −1 src/operator/expand.ts
  42. +1 −1 src/operator/filter.ts
  43. +1 −1 src/operator/finally.ts
  44. +1 −1 src/operator/find.ts
  45. +1 −1 src/operator/first.ts
  46. +1 −1 src/operator/groupBy.ts
  47. +1 −1 src/operator/ignoreElements.ts
  48. +1 −1 src/operator/isEmpty.ts
  49. +1 −1 src/operator/last.ts
  50. +1 −1 src/operator/map.ts
  51. +1 −1 src/operator/mapTo.ts
  52. +8 −1 src/operator/materialize.ts
  53. +15 −0 src/operator/merge.ts
  54. +1 −1 src/operator/mergeAll.ts
  55. +10 −1 src/operator/mergeMap.ts
  56. +1 −1 src/operator/mergeMapTo.ts
  57. +1 −1 src/operator/mergeScan.ts
  58. +1 −1 src/operator/multicast.ts
  59. +1 −1 src/operator/observeOn.ts
  60. +2 −2 src/operator/onErrorResumeNext.ts
  61. +1 −1 src/operator/pairwise.ts
  62. +3 −3 src/operator/race.ts
  63. +1 −1 src/operator/reduce.ts
  64. +1 −1 src/operator/repeat.ts
  65. +1 −1 src/operator/repeatWhen.ts
  66. +1 −1 src/operator/retry.ts
  67. +1 −1 src/operator/retryWhen.ts
  68. +1 −1 src/operator/sample.ts
  69. +1 −1 src/operator/sampleTime.ts
  70. +1 −1 src/operator/scan.ts
  71. +3 −3 src/operator/sequenceEqual.ts
  72. +1 −1 src/operator/single.ts
  73. +1 −1 src/operator/skip.ts
  74. +1 −1 src/operator/skipUntil.ts
  75. +1 −1 src/operator/skipWhile.ts
  76. +15 −1 src/operator/subscribeOn.ts
  77. +1 −1 src/operator/switch.ts
  78. +1 −1 src/operator/switchMap.ts
  79. +1 −1 src/operator/switchMapTo.ts
  80. +1 −1 src/operator/take.ts
  81. +1 −1 src/operator/takeLast.ts
  82. +1 −1 src/operator/takeUntil.ts
  83. +1 −1 src/operator/takeWhile.ts
  84. +1 −1 src/operator/throttle.ts
  85. +1 −1 src/operator/throttleTime.ts
  86. +1 −1 src/operator/timeInterval.ts
  87. +1 −1 src/operator/timeout.ts
  88. +1 −1 src/operator/timeoutWith.ts
  89. +1 −1 src/operator/timestamp.ts
  90. +1 −1 src/operator/toArray.ts
  91. +1 −1 src/operator/window.ts
  92. +1 −1 src/operator/windowCount.ts
  93. +1 −1 src/operator/windowTime.ts
  94. +1 −1 src/operator/windowToggle.ts
  95. +1 −1 src/operator/windowWhen.ts
  96. +1 −1 src/operator/withLatestFrom.ts
  97. +1 −1 src/operator/zip.ts
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
<a name="5.0.1"></a>
## [5.0.1](https://github.com/ReactiveX/RxJS/compare/5.0.0...v5.0.1) (2016-12-13)


### Bug Fixes

* **TypeScript:** pin to TypeScript 2.0.x, fix errors with Error subclassing ([300504c](https://github.com/ReactiveX/RxJS/commit/300504c))



<a name="5.0.0"></a>
# [5.0.0](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.5...v5.0.0) (2016-12-13)


### Bug Fixes

* **race:** unsubscribe raced observables with immediate scheduler ([#2158](https://github.com/ReactiveX/RxJS/issues/2158)) ([7dd533b](https://github.com/ReactiveX/RxJS/commit/7dd533b))
* **SubscribeOnObservable:** Add the source subscription to the action disposable so the source will ([64e3815](https://github.com/ReactiveX/RxJS/commit/64e3815))



<a name="5.0.0-rc.5"></a>
# [5.0.0-rc.5](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.4...v5.0.0-rc.5) (2016-12-07)

118 changes: 69 additions & 49 deletions MIGRATION.md
Original file line number Diff line number Diff line change
@@ -53,68 +53,88 @@ enabling "composite" subscription behavior.
|RxJS 4|RxJS 5|
|---|---|
|`amb`|`race`|
|`and`|No longer implemented|
|`asObservable`|Exists on `Subject` only|
|`average`|No longer implemented|
|`bufferWithCount`|`bufferCount`|
|`bufferWithTime`|`bufferTime`|
|`flatMap` or `selectMany`|`mergeMap` or `flatMap`(alias)|
|`concat`|`concat`|
|`concatAll`|`concatAll`|
|`concatMap`|`concatMap`|
|`concatMapObserver`|No longer implemented|
|`controlled`|No longer implemented|
|`delaySubscription`|No longer implemented|
|`do`|`do`|
|`doAction`|`do`|
|`doOnCompleted`|`do(null, null, fn)`|
|`doOnError`|`do(null, fn)`|
|`doOnNext`|`do(fn)`|
|`doWhile`|No longer implemented|
|`extend`|No longer implemented|
|`flatMapFirst`|`exhaustMap`|
|`flatMapLatest`|`switchMap`|
|`flatMapWithMaxConcurrent`|`mergeMap` or `flatMap`(alias)|
|`flatMap`|`mergeMap` or `flatMap`(alias)|
|`fromCallback`|`bindCallback`|
|`fromNodeCallback`|`bindNodeCallback`|
|`groupByUntil`|`groupBy(keySelector, elementSelector, durationSelector)`|
|`groupJoin`|No longer implemented|
|`includes(v)`|`.first(x => x === v, () => true, false)`|
|`indexOf(v)`|`.map((x, i) => [x === v, i]).filter(([x]) => x).map(([_, i]) => i).first()`|
|`join`|No longer implemented|
|`jortSortUntil`|No longer implemented|
|`jortSort`|No longer implemented|
|`just(v)` or `just(a, b, c)`|`of(v)`, `of(a, b, c)`|
|`lastIndexOf`|`.map((x, i) => [x === v, i]).filter(([x]) => x).map(([_, i]) => i).last()`|
|`manySelect`|No longer implemented|
|`map(fn)`|`map(fn)`|
|`map(value)`|`mapTo(value)`|
|`maxBy(fn)`|`scan((s, v, i) => { let max = Math.max(s.max, fn(v, i)); return { max, value: max === s.max ? s.value : v }; }, { max: null, value: undefined }).last(x => x.max !== null, x => x.value)`|
|`minBy(fn)`|`scan((s, v, i) => { let min = Math.min(s.min, fn(v, i)); return { min, value: min === s.min ? s.value : v }; }, { min: null, value: undefined }).last(x => x.min !== null, x => x.value)`|
|`of`|`of`|
|`ofObjectChanges`|No longer implemented|
|`pausableBuffered`|No longer implemented|
|`pausable`|No longer implemented|
|`pluck`|`pluck`|
|`publishLast`|`publishLast`|
|`publishValue`|`publishBehavior`|
|`replay`|`publishReplay`|
|`return` or `just`|`of`|
|`select`|`map`|
|`return`|`of`|
|`selectConcatObserver`|No longer implemented|
|`selectConcat`|`concatMap`|
|`selectMany(fn)`|`mergeMap(fn)` or `flatMap(fn)` (alias)|
|`selectMany(observable)`|`mergeMapTo(observable)`|
|`selectManyObserver` or `flatMapObserver`|No longer implemented|
|`select`|`map`|
|`shareReplay`|`publishReplay().refCount()`|
|`shareValue`|No longer implemented|
|`singleInstance`|`share`|
|`skipLastWithTime`|No longer implemented|
|`skipLast`|No longer implemented|
|`skipUntilWithTime`|No longer implemented|
|`slice(start, end)`|`skip(start).take(end - start)`|
|`some`|`first(fn, () => true, false)`|
|`sum`|`reduce((s, v) => s + v, 0)`|
|`switchFirst`|`exhaust`|
|`takeLast`|`takeLast`|
|`takeLastBufferWithTime`|No longer implemented|
|`takeLastBuffer`|No longer implemented|
|`takeLastWithTime`|No longer implemented|
|`takeUntilWithTime`|No longer implemented|
|`tapOnCompleted(fn)`|`do(null, null, fn)`|
|`tapOnError(fn)`|`do(null, fn)`|
|`tapOnNext(fn)`|`do(fn)`|
|`tap`|`do`|
|`windowWithTime`|`windowTime`|
|`windowWithCount`|`windowCount`|
|`timestamp`|`map(v => ({ value: v, timestamp: Date.now() }))`|
|`toMap(keySelector)`|`reduce((map, v, i) => map.set(keySelector(v, i), v), new Map())`|
|`toMap(keySelector, elmentSelector)`|`reduce((map, v, i) => map.set(keySelector(v, i), elementSelector(v)), new Map())`|
|`toSet`|`reduce((set, v) => set.add(v))`|
|`transduce`|No longer implemented|
|`where`|`filter`|
|`and`|Not yet implemented|
|`asObservable`|Not yet implemented|
|`average`|Not yet implemented|
|`controlled`|Not yet implemented|
|`delaySubscription`|Not yet implemented|
|`doWhile`|Not yet implemented|
|`extend`|Not yet implemented|
|`groupByUntil`|Not yet implemented|
|`groupJoin`|Not yet implemented|
|`includes`|Not yet implemented|
|`indexOf`|Not yet implemented|
|`join`|Not yet implemented|
|`jortSort`|Not yet implemented|
|`jortSortUntil`|Not yet implemented|
|`lastIndexOf`|Not yet implemented|
|`manySelect`|Not yet implemented|
|`maxBy`|Not yet implemented|
|`minBy`|Not yet implemented|
|`ofObjectChanges`|Not yet implemented|
|`pausable`|Not yet implemented|
|`pausableBuffered`|Not yet implemented|
|`shareReplay`|Not yet implemented|
|`shareValue`|Not yet implemented|
|`selectConcatObserver` or `concatMapObserver`|Not yet implemented|
|`selectManyObserver` or `flatMapObserver`|Not yet implemented|
|`singleInstance`|Not yet implemented|
|`skipLast`|Not yet implemented|
|`skipLastWithTime`|Not yet implemented|
|`skipUntilWithTime`|Not yet implemented|
|`slice`|Not yet implemented|
|`some`|Not yet implemented|
|`sum`|Not yet implemented|
|`takeLastBuffer`|Not yet implemented|
|`takeLastBufferWithTime`|Not yet implemented|
|`takeLastWithTime`|Not yet implemented|
|`takeUntilWithTime`|Not yet implemented|
|`tapOnNext`|`do`|
|`tapOnError`|`do`|
|`tapOnCompleted`|`do`|
|`timestamp`|Not yet implemented|
|`toMap`|Not yet implemented|
|`toSet`|Not yet implemented|
|`transduce`|Not yet implemented|
|`windowWithTimeOrCount`|Not yet implemented|
|`windowWithCount`|`windowCount`|
|`windowWithTimeOrCount`|No longer implemented|
|`windowWithTime`|`windowTime`|
|`zip`|`zip`|

## Operator Splits

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@

[![Selenium Test Status](https://saucelabs.com/browser-matrix/rxjs5.svg)](https://saucelabs.com/u/rxjs5)

# RxJS 5 (release candidate)
# RxJS 5

Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is intended to supersede it once this is ready. 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.

@@ -108,7 +108,7 @@ npm install @reactivex/rxjs
If you are using npm **version 2** before this library has achieved a stable version, you need to specify the library version explicitly:

```sh
npm install @reactivex/rxjs@5.0.0-rc.1
npm install @reactivex/rxjs@5.0.0
```

### CDN
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@reactivex/rxjs",
"version": "5.0.0-rc.5",
"version": "5.0.1",
"description": "Reactive Extensions for modern JavaScript",
"main": "index.js",
"config": {
@@ -186,7 +186,7 @@
"source-map-support": "^0.4.0",
"tslib": "^1.0.0",
"tslint": "^3.15.1",
"typescript": "^2.0.6",
"typescript": "~2.0.6",
"typings": "^2.0.0",
"validate-commit-msg": "^2.3.1",
"watch": "^1.0.1",
36 changes: 36 additions & 0 deletions spec/operators/race-spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {expect} from 'chai';
import * as sinon from 'sinon';
import * as Rx from '../../dist/cjs/Rx';
declare const {hot, cold, expectObservable, expectSubscriptions};

@@ -171,4 +172,39 @@ describe('Observable.prototype.race', () => {
expect(x).to.be.true;
}, done, done);
});

it('should ignore latter observables if a former one emits immediately', () => {
const onNext = sinon.spy();
const onSubscribe = sinon.spy();
const e1 = Observable.of('a'); // Wins the race
const e2 = Observable.defer(onSubscribe); // Should be ignored

e1.race(e2).subscribe(onNext);
expect(onNext.calledWithExactly('a')).to.be.true;
expect(onSubscribe.called).to.be.false;
});

it('should unsubscribe former observables if a latter one emits immediately', () => {
const onNext = sinon.spy();
const onUnsubscribe = sinon.spy();
const e1 = Observable.never<string>().finally(onUnsubscribe); // Should be unsubscribed
const e2 = Observable.of('b'); // Wins the race

e1.race(e2).subscribe(onNext);
expect(onNext.calledWithExactly('b')).to.be.true;
expect(onUnsubscribe.calledOnce).to.be.true;
});

it('should unsubscribe from immediately emitting observable on unsubscription', () => {
const onNext = sinon.spy();
const onUnsubscribe = sinon.spy();
const e1 = Observable.never<string>().startWith('a').finally(onUnsubscribe); // Wins the race
const e2 = Observable.never<string>(); // Loses the race

const subscription = e1.race(e2).subscribe(onNext);
expect(onNext.calledWithExactly('a')).to.be.true;
expect(onUnsubscribe.called).to.be.false;
subscription.unsubscribe();
expect(onUnsubscribe.calledOnce).to.be.true;
});
});
2 changes: 1 addition & 1 deletion src/Observable.ts
Original file line number Diff line number Diff line change
@@ -93,7 +93,7 @@ export class Observable<T> implements Subscribable<T> {
const sink = toSubscriber(observerOrNext, error, complete);

if (operator) {
operator.call(sink, this);
operator.call(sink, this.source);
} else {
sink.add(this._subscribe(sink));
}
2 changes: 1 addition & 1 deletion src/observable/ConnectableObservable.ts
Original file line number Diff line number Diff line change
@@ -97,7 +97,7 @@ class RefCountOperator<T> implements Operator<T, T> {
(<any> connectable)._refCount++;

const refCounter = new RefCountSubscriber(subscriber, connectable);
const subscription = source._subscribe(refCounter);
const subscription = source.subscribe(refCounter);

if (!refCounter.closed) {
(<any> refCounter).connection = connectable.connect();
6 changes: 6 additions & 0 deletions src/observable/DeferObservable.ts
Original file line number Diff line number Diff line change
@@ -38,6 +38,12 @@ export class DeferObservable<T> extends Observable<T> {
* }
* });
* clicksOrInterval.subscribe(x => console.log(x));
*
* // Results in the following behavior:
* // If the result of Math.random() is greater than 0.5 it will listen
* // for clicks anywhere on the "document"; when document is clicked it
* // will log a MouseEvent object to the console. If the result is less
* // than 0.5 it will emit ascending numbers, one every second(1000ms).
*
* @see {@link create}
*
6 changes: 6 additions & 0 deletions src/observable/EmptyObservable.ts
Original file line number Diff line number Diff line change
@@ -38,6 +38,12 @@ export class EmptyObservable<T> extends Observable<T> {
* );
* result.subscribe(x => console.log(x));
*
* // Results in the following to the console:
* // x is equal to the count on the interval eg(0,1,2,3,...)
* // x will occur every 1000ms
* // if x % 2 is equal to 1 print abc
* // if x % 2 is not equal to 1 nothing will be output
*
* @see {@link create}
* @see {@link never}
* @see {@link of}
4 changes: 4 additions & 0 deletions src/observable/FromEventObservable.ts
Original file line number Diff line number Diff line change
@@ -79,6 +79,10 @@ export class FromEventObservable<T> extends Observable<T> {
* var clicks = Rx.Observable.fromEvent(document, 'click');
* clicks.subscribe(x => console.log(x));
*
* // Results in:
* // MouseEvent object logged to console everytime a click
* // occurs on the document.
*
* @see {@link from}
* @see {@link fromEventPattern}
*
6 changes: 6 additions & 0 deletions src/observable/FromObservable.ts
Original file line number Diff line number Diff line change
@@ -48,6 +48,9 @@ export class FromObservable<T> extends Observable<T> {
* var result = Rx.Observable.from(array);
* result.subscribe(x => console.log(x));
*
* // Results in the following:
* // 10 20 30
*
* @example <caption>Convert an infinite iterable (from a generator) to an Observable</caption>
* function* generateDoubles(seed) {
* var i = seed;
@@ -61,6 +64,9 @@ export class FromObservable<T> extends Observable<T> {
* var result = Rx.Observable.from(iterator).take(10);
* result.subscribe(x => console.log(x));
*
* // Results in the following:
* // 3 6 12 24 48 96 192 384 768 1536
*
* @see {@link create}
* @see {@link fromEvent}
* @see {@link fromEventPattern}
5 changes: 3 additions & 2 deletions src/observable/SubscribeOnObservable.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { Action } from '../scheduler/Action';
import { Scheduler } from '../Scheduler';
import { Subscriber } from '../Subscriber';
import { Subscription } from '../Subscription';
@@ -20,9 +21,9 @@ export class SubscribeOnObservable<T> extends Observable<T> {
return new SubscribeOnObservable(source, delay, scheduler);
}

static dispatch<T>(arg: DispatchArg<T>): Subscription {
static dispatch<T>(this: Action<T>, arg: DispatchArg<T>): Subscription {
const { source, subscriber } = arg;
return source.subscribe(subscriber);
return this.add(source.subscribe(subscriber));
}

constructor(public source: Observable<T>,
5 changes: 5 additions & 0 deletions src/observable/combineLatest.ts
Original file line number Diff line number Diff line change
@@ -52,6 +52,11 @@ export function combineLatest<R>(...observables: Array<ObservableInput<any> | ((
* var bmi = Rx.Observable.combineLatest(weight, height, (w, h) => w / (h * h));
* bmi.subscribe(x => console.log('BMI is ' + x));
*
* // With output to console:
* // BMI is 24.212293388429753
* // BMI is 23.93948099205209
* // BMI is 23.671253629592222
*
* @see {@link combineAll}
* @see {@link merge}
* @see {@link withLatestFrom}
2 changes: 1 addition & 1 deletion src/operator/audit.ts
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ class AuditOperator<T> implements Operator<T, T> {
}

call(subscriber: Subscriber<T>, source: any): TeardownLogic {
return source._subscribe(new AuditSubscriber<T, T>(subscriber, this.durationSelector));
return source.subscribe(new AuditSubscriber<T, T>(subscriber, this.durationSelector));
}
}

2 changes: 1 addition & 1 deletion src/operator/auditTime.ts
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ class AuditTimeOperator<T> implements Operator<T, T> {
}

call(subscriber: Subscriber<T>, source: any): TeardownLogic {
return source._subscribe(new AuditTimeSubscriber(subscriber, this.duration, this.scheduler));
return source.subscribe(new AuditTimeSubscriber(subscriber, this.duration, this.scheduler));
}
}

2 changes: 1 addition & 1 deletion src/operator/buffer.ts
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ class BufferOperator<T> implements Operator<T, T[]> {
}

call(subscriber: Subscriber<T[]>, source: any): any {
return source._subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
}
}

2 changes: 1 addition & 1 deletion src/operator/bufferCount.ts
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ class BufferCountOperator<T> implements Operator<T, T[]> {
}

call(subscriber: Subscriber<T[]>, source: any): any {
return source._subscribe(new BufferCountSubscriber(subscriber, this.bufferSize, this.startBufferEvery));
return source.subscribe(new BufferCountSubscriber(subscriber, this.bufferSize, this.startBufferEvery));
}
}

2 changes: 1 addition & 1 deletion src/operator/bufferTime.ts
Original file line number Diff line number Diff line change
@@ -86,7 +86,7 @@ class BufferTimeOperator<T> implements Operator<T, T[]> {
}

call(subscriber: Subscriber<T[]>, source: any): any {
return source._subscribe(new BufferTimeSubscriber(
return source.subscribe(new BufferTimeSubscriber(
subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler
));
}
Loading