Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit 68c2ef7

Browse files
author
Dan Lewi Harkestad
committed
Fixes in rebuild-ts grunt task.
rebuild-ts task would wrongly exclude typings included in the rx.lite.d.ts file. For instance would rx.time.d.ts only receive the typings not included in rx.lite.d.ts. As it was, I could only use either rx.lite.d.ts or rx.all.d.ts. However, I use a subset with rx.d.ts, rx.binding.ts and rx.time.d.ts. This fix makes it possible to do that. Instead of excluding typings included in lite, the rebuild-ts task now correctly excludes typings included in main (rx.d.ts). The original behaviour is kept if lite typings are built. I believe this is the correct behaviour, and it works nicely in my setup. I can now use a subset of the typings. I've also fixed the declare module output of rx.d.ts. It would previously add the declare module "rx" line twice, resulting in a compiler error when included in a project.
1 parent 1b8709d commit 68c2ef7

13 files changed

Lines changed: 2067 additions & 5 deletions

Gruntfile.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2619,7 +2619,9 @@ module.exports = function (grunt) {
26192619
}
26202620

26212621
if (!(concatKey === 'all' || concatKey === 'main' || concatKey === 'lite' || concatKey === 'core')) {
2622-
if (allLoadedFiles['lite'][tsFile] || allLoadedFiles['core'][tsFile]) {
2622+
if ((concatKey.indexOf('lite') === 0 && allLoadedFiles['lite'][tsFile])
2623+
|| (concatKey.indexOf('lite') !== 0 && allLoadedFiles['main'][tsFile])
2624+
|| allLoadedFiles['core'][tsFile]) {
26232625
loadedFiles[tsFile] = true;
26242626
return;
26252627
}
@@ -2655,7 +2657,7 @@ module.exports = function (grunt) {
26552657
continue;
26562658
}
26572659

2658-
if (key === 'lite' || key === 'core') {
2660+
if (key === 'lite' || key === 'main' || key === 'core') {
26592661
items.unshift(key);
26602662
} else {
26612663
items.push(key);
@@ -2717,7 +2719,7 @@ module.exports = function (grunt) {
27172719
if (concatKey === 'all' || concatKey === 'main' || concatKey === 'lite' || concatKey === 'core') {
27182720
outputString += '\ndeclare module "rx" { export = Rx; }\n';
27192721
}
2720-
if (dist && concatKey !== 'core') {
2722+
if (dist && concatKey !== 'core' && concatKey !== 'main') {
27212723
outputString += 'declare module "'+dist+'" { export = Rx; }';
27222724
}
27232725

ts/rx.async.d.ts

Lines changed: 215 additions & 0 deletions
Large diffs are not rendered by default.

ts/rx.async.es6.d.ts

Lines changed: 215 additions & 0 deletions
Large diffs are not rendered by default.

ts/rx.backpressure.d.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,67 @@
11
declare module Rx {
22

3+
/**
4+
* Used to pause and resume streams.
5+
*/
6+
export interface Pauser {
7+
/**
8+
* Pauses the underlying sequence.
9+
*/
10+
pause(): void;
11+
12+
/**
13+
* Resumes the underlying sequence.
14+
*/
15+
resume(): void;
16+
}
17+
18+
export interface Observable<T> {
19+
/**
20+
* Pauses the underlying observable sequence based upon the observable sequence which yields true/false.
21+
* @example
22+
* var pauser = new Rx.Subject();
23+
* var source = Rx.Observable.interval(100).pausable(pauser);
24+
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
25+
* @returns {Observable} The observable sequence which is paused based upon the pauser.
26+
*/
27+
pausable(pauser?: Observable<boolean>): PausableObservable<T>;
28+
}
29+
30+
export interface PausableObservable<T> extends Observable<T> {
31+
pause(): void;
32+
resume(): void;
33+
}
34+
35+
export interface Observable<T> {
36+
/**
37+
* Pauses the underlying observable sequence based upon the observable sequence which yields true/false,
38+
* and yields the values that were buffered while paused.
39+
* @example
40+
* var pauser = new Rx.Subject();
41+
* var source = Rx.Observable.interval(100).pausableBuffered(pauser);
42+
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
43+
* @returns {Observable} The observable sequence which is paused based upon the pauser.
44+
*/
45+
pausableBuffered(pauser?: Observable<boolean>): PausableObservable<T>;
46+
}
47+
48+
export interface Observable<T> {
49+
/**
50+
* Attaches a controller to the observable sequence with the ability to queue.
51+
* @example
52+
* var source = Rx.Observable.interval(100).controlled();
53+
* source.request(3); // Reads 3 values
54+
* @param {bool} enableQueue truthy value to determine if values should be queued pending the next request
55+
* @param {Scheduler} scheduler determines how the requests will be scheduled
56+
* @returns {Observable} The observable sequence which only propagates values on request.
57+
*/
58+
controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable<T>;
59+
}
60+
61+
export interface ControlledObservable<T> extends Observable<T> {
62+
request(numberOfItems?: number): IDisposable;
63+
}
64+
365
export interface ControlledObservable<T> {
466
/**
567
* Attaches a stop and wait observable to the current observable.
@@ -17,5 +79,15 @@ declare module Rx {
1779
windowed(windowSize: number): Observable<T>;
1880
}
1981

82+
export interface Observable<T> {
83+
/**
84+
* Pipes the existing Observable sequence into a Node.js Stream.
85+
* @param {Stream} dest The destination Node.js stream.
86+
* @returns {Stream} The destination stream.
87+
*/
88+
pipe<TDest>(dest: TDest): TDest;
89+
// TODO: Add link to node.d.ts some where
90+
}
91+
2092
}
2193
declare module "rx.backpressure" { export = Rx; }

ts/rx.backpressure.es6.d.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,67 @@
11
declare module Rx {
22

3+
/**
4+
* Used to pause and resume streams.
5+
*/
6+
export interface Pauser {
7+
/**
8+
* Pauses the underlying sequence.
9+
*/
10+
pause(): void;
11+
12+
/**
13+
* Resumes the underlying sequence.
14+
*/
15+
resume(): void;
16+
}
17+
18+
export interface Observable<T> {
19+
/**
20+
* Pauses the underlying observable sequence based upon the observable sequence which yields true/false.
21+
* @example
22+
* var pauser = new Rx.Subject();
23+
* var source = Rx.Observable.interval(100).pausable(pauser);
24+
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
25+
* @returns {Observable} The observable sequence which is paused based upon the pauser.
26+
*/
27+
pausable(pauser?: Observable<boolean>): PausableObservable<T>;
28+
}
29+
30+
export interface PausableObservable<T> extends Observable<T> {
31+
pause(): void;
32+
resume(): void;
33+
}
34+
35+
export interface Observable<T> {
36+
/**
37+
* Pauses the underlying observable sequence based upon the observable sequence which yields true/false,
38+
* and yields the values that were buffered while paused.
39+
* @example
40+
* var pauser = new Rx.Subject();
41+
* var source = Rx.Observable.interval(100).pausableBuffered(pauser);
42+
* @param {Observable} pauser The observable sequence used to pause the underlying sequence.
43+
* @returns {Observable} The observable sequence which is paused based upon the pauser.
44+
*/
45+
pausableBuffered(pauser?: Observable<boolean>): PausableObservable<T>;
46+
}
47+
48+
export interface Observable<T> {
49+
/**
50+
* Attaches a controller to the observable sequence with the ability to queue.
51+
* @example
52+
* var source = Rx.Observable.interval(100).controlled();
53+
* source.request(3); // Reads 3 values
54+
* @param {bool} enableQueue truthy value to determine if values should be queued pending the next request
55+
* @param {Scheduler} scheduler determines how the requests will be scheduled
56+
* @returns {Observable} The observable sequence which only propagates values on request.
57+
*/
58+
controlled(enableQueue?: boolean, scheduler?: IScheduler): ControlledObservable<T>;
59+
}
60+
61+
export interface ControlledObservable<T> extends Observable<T> {
62+
request(numberOfItems?: number): IDisposable;
63+
}
64+
365
export interface ControlledObservable<T> {
466
/**
567
* Attaches a stop and wait observable to the current observable.
@@ -17,5 +79,15 @@ declare module Rx {
1779
windowed(windowSize: number): Observable<T>;
1880
}
1981

82+
export interface Observable<T> {
83+
/**
84+
* Pipes the existing Observable sequence into a Node.js Stream.
85+
* @param {Stream} dest The destination Node.js stream.
86+
* @returns {Stream} The destination stream.
87+
*/
88+
pipe<TDest>(dest: TDest): TDest;
89+
// TODO: Add link to node.d.ts some where
90+
}
91+
2092
}
2193
declare module "rx.backpressure" { export = Rx; }

0 commit comments

Comments
 (0)