Skip to content

Commit 1622ee0

Browse files
jasonadenbenlesh
authored andcommitted
fix(rxjs): add exports for symbols/interfaces that were missing (#3380)
Includes: `rxjs`: Operator Subscriber AsyncSubject ConnectableObservable TimeoutError VirtualTimeScheduler `rxjs/ajax`: AjaxRequest AjaxResponse AjaxError AjaxTimeoutError `rxjs/operators`: Timestamp (made an interface) TimeInterval (made an interface)
1 parent 8fd50ad commit 1622ee0

File tree

7 files changed

+37
-4
lines changed

7 files changed

+37
-4
lines changed

spec/ajax/index-spec.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,12 @@ describe('index', () => {
55
it('should export static ajax observable creator functions', () => {
66
expect(index.ajax).to.exist;
77
});
8+
9+
it('should export Ajax data classes', () => {
10+
expect(index.AjaxResponse).to.exist;
11+
expect(index.AjaxError).to.exist;
12+
expect(index.AjaxTimeoutError).to.exist;
13+
// Interfaces can be checked by creating a variable of that type
14+
let ajaxRequest: index.AjaxRequest;
15+
});
816
});

spec/index-spec.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,30 @@ import { expect } from 'chai';
44
describe('index', () => {
55
it('should export Observable', () => {
66
expect(index.Observable).to.exist;
7+
expect(index.ConnectableObservable).to.exist;
8+
// Interfaces can be checked by creating a variable of that type
9+
let operator: index.Operator<any, any>;
710
});
811

912
it('should export the Subject types', () => {
1013
expect(index.Subject).to.exist;
1114
expect(index.BehaviorSubject).to.exist;
1215
expect(index.ReplaySubject).to.exist;
16+
expect(index.AsyncSubject).to.exist;
1317
});
1418

1519
it('should export the schedulers', () => {
1620
expect(index.asapScheduler).to.exist;
1721
expect(index.asyncScheduler).to.exist;
1822
expect(index.queueScheduler).to.exist;
1923
expect(index.animationFrameScheduler).to.exist;
24+
expect(index.VirtualTimeScheduler).to.exist;
25+
expect(index.VirtualAction).to.exist;
2026
});
2127

2228
it('should export Subscription', () => {
2329
expect(index.Subscription).to.exist;
30+
expect(index.Subscriber).to.exist;
2431
});
2532

2633
it('should export Notification', () => {
@@ -38,6 +45,7 @@ describe('index', () => {
3845
expect(index.EmptyError).to.exist;
3946
expect(index.ObjectUnsubscribedError).to.exist;
4047
expect(index.UnsubscriptionError).to.exist;
48+
expect(index.TimeoutError).to.exist;
4149
});
4250

4351
it('should export constants', () => {

src/ajax/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export { ajax } from '../internal/observable/dom/ajax';
2+
export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable';

src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
/* Observable */
22
export { Observable } from './internal/Observable';
3+
export { ConnectableObservable } from './internal/observable/ConnectableObservable';
4+
export { Operator } from './internal/Operator';
35

46
/* Subjects */
57
export { Subject } from './internal/Subject';
68
export { BehaviorSubject } from './internal/BehaviorSubject';
79
export { ReplaySubject } from './internal/ReplaySubject';
10+
export { AsyncSubject } from './internal/AsyncSubject';
811

912
/* Schedulers */
1013
export { asap as asapScheduler } from './internal/scheduler/asap';
1114
export { async as asyncScheduler } from './internal/scheduler/async';
1215
export { queue as queueScheduler } from './internal/scheduler/queue';
1316
export { animationFrame as animationFrameScheduler } from './internal/scheduler/animationFrame';
17+
export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler';
1418

1519
/* Subscription */
1620
export { Subscription } from './internal/Subscription';
21+
export { Subscriber } from './internal/Subscriber';
1722

1823
/* Notification */
1924
export { Notification } from './internal/Notification';
@@ -28,6 +33,7 @@ export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError
2833
export { EmptyError } from './internal/util/EmptyError';
2934
export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError';
3035
export { UnsubscriptionError } from './internal/util/UnsubscriptionError';
36+
export { TimeoutError } from './internal/util/TimeoutError';
3137

3238
/* Static observable creation exports */
3339
export { bindCallback } from './internal/observable/bindCallback';

src/internal/operators/timeInterval.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import { Observable } from '../Observable';
33
import { Subscriber } from '../Subscriber';
44
import { IScheduler } from '../Scheduler';
55
import { async } from '../scheduler/async';
6-
import { OperatorFunction } from '../types';
6+
import { OperatorFunction, TimeInterval as TimeIntervalInterface } from '../types';
77

88
export function timeInterval<T>(scheduler: IScheduler = async): OperatorFunction<T, TimeInterval<T>> {
99
return (source: Observable<T>) => source.lift(new TimeIntervalOperator(scheduler));
1010
}
1111

12-
export class TimeInterval<T> {
12+
export class TimeInterval<T> implements TimeIntervalInterface<T> {
1313
constructor(public value: T, public interval: number) {
1414

1515
}

src/internal/operators/timestamp.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
import { IScheduler } from '../Scheduler';
33
import { async } from '../scheduler/async';
4-
import { OperatorFunction } from '../types';
4+
import { OperatorFunction, Timestamp as TimestampInterface } from '../types';
55
import { map } from './map';
66

77
/**
@@ -15,7 +15,7 @@ export function timestamp<T>(scheduler: IScheduler = async): OperatorFunction<T,
1515
// return (source: Observable<T>) => source.lift(new TimestampOperator(scheduler));
1616
}
1717

18-
export class Timestamp<T> {
18+
export class Timestamp<T> implements TimestampInterface<T> {
1919
constructor(public value: T, public timestamp: number) {
2020
}
2121
}

src/internal/types.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@ export type FactoryOrValue<T> = T | (() => T);
1010

1111
export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {}
1212

13+
export interface Timestamp<T> {
14+
value: T;
15+
timestamp: number;
16+
}
17+
18+
export interface TimeInterval<T> {
19+
value: T;
20+
interval: number;
21+
}
22+
1323
/** SUBSCRIPTION INTERFACES */
1424

1525
export interface Unsubscribable {

0 commit comments

Comments
 (0)