Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tags for the family of Observable* types to simplify typechecking #1474

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Observable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export type ObservableInput<T> = ObservableOrPromise<T> | ArrayOrIterator<T>;
* @class Observable<T>
*/
export class Observable<T> {
' tag_class_Observable': T;

public _isScalar: boolean = false;

Expand Down
6 changes: 5 additions & 1 deletion src/Subject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,20 @@ import {throwError} from './util/throwError';
import {ObjectUnsubscribedError} from './util/ObjectUnsubscribedError';

export class Subject<T> extends Observable<T> implements Observer<T>, Subscription {
' tag_class_Subject': T;

static create: Function = <T>(destination: Observer<T>, source: Observable<T>): Subject<T> => {
return new Subject<T>(destination, source);
};

constructor(protected destination?: Observer<T>, protected source?: Observable<T>) {
constructor(destination?: Observer<T>, source?: Observable<T>) {
super();
this.destination = destination;
this.source = source;
}

protected destination: Observer<T>;
protected source: Observable<T>;
public observers: Observer<T>[] = [];
public isUnsubscribed: boolean = false;

Expand Down
1 change: 1 addition & 0 deletions src/observable/ArrayLikeObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {Subscriber} from '../Subscriber';
import {Subscription} from '../Subscription';

export class ArrayLikeObservable<T> extends Observable<T> {
' tag_class_ArrayLikeObservable': T;

private mapFn: (x: T, y: number) => T;

Expand Down
1 change: 1 addition & 0 deletions src/observable/ArrayObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {Subscription} from '../Subscription';
*
*/
export class ArrayObservable<T> extends Observable<T> {
' tag_class_ArrayLikeObservable': T;

/**
* @param array
Expand Down
2 changes: 2 additions & 0 deletions src/observable/BoundCallbackObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import {AsyncSubject} from '../subject/AsyncSubject';
*
*/
export class BoundCallbackObservable<T> extends Observable<T> {
' tag_class_BoundCallbackObservable': T;

subject: AsyncSubject<T>;

/* tslint:disable:max-line-length */
Expand Down
2 changes: 2 additions & 0 deletions src/observable/BoundNodeCallbackObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import {AsyncSubject} from '../subject/AsyncSubject';
*
*/
export class BoundNodeCallbackObservable<T> extends Observable<T> {
' tag_class_BoundNodeCallbackObservable': T;

subject: AsyncSubject<T>;

/* tslint:disable:max-line-length */
Expand Down
1 change: 1 addition & 0 deletions src/observable/ConnectableObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {Subscriber} from '../Subscriber';
import {Subscription} from '../Subscription';

export class ConnectableObservable<T> extends Observable<T> {
' tag_class_ConnectableObservable': T;

protected subject: Subject<T>;
protected subscription: Subscription;
Expand Down
1 change: 1 addition & 0 deletions src/observable/DeferObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {errorObject} from '../util/errorObject';
*
*/
export class DeferObservable<T> extends Observable<T> {
' tag_class_DeferObservable': T;

/**
* @param observableFactory
Expand Down
1 change: 1 addition & 0 deletions src/observable/EmptyObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {Subscription} from '../Subscription';
*
*/
export class EmptyObservable<T> extends Observable<T> {
' tag_class_EmptyObservable': T;

/**
* @param scheduler
Expand Down
1 change: 1 addition & 0 deletions src/observable/ErrorObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {Subscription} from '../Subscription';
*
*/
export class ErrorObservable extends Observable<any> {
' tag_class_ErrorObservable': any;

/**
* @param error
Expand Down
2 changes: 2 additions & 0 deletions src/observable/ForkJoinObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import {isArray} from '../util/isArray';
*
*/
export class ForkJoinObservable<T> extends Observable<T> {
' tag_class_ForkJoinObservable': T;

constructor(private sources: Array<Observable<any> | Promise<any>>,
private resultSelector?: (...values: Array<any>) => T) {
super();
Expand Down
1 change: 1 addition & 0 deletions src/observable/FromEventObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export type EventTargetLike = EventTarget | NodeStyleEventEmmitter | JQueryStyle
*
*/
export class FromEventObservable<T, R> extends Observable<T> {
' tag_class_FromEventObservable': [T, R];

/**
* @param sourceObj
Expand Down
1 change: 1 addition & 0 deletions src/observable/FromEventPatternObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {Subscriber} from '../Subscriber';
*
*/
export class FromEventPatternObservable<T, R> extends Observable<T> {
' tag_class_FromEventPatternObservable': [T, R];

/**
* @param addHandler
Expand Down
2 changes: 2 additions & 0 deletions src/observable/FromObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length ===
*
*/
export class FromObservable<T> extends Observable<T> {
' tag_class_FromObservable': T;

constructor(private ish: ObservableInput<T>, private scheduler: Scheduler) {
super(null);
}
Expand Down
1 change: 1 addition & 0 deletions src/observable/IfObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {Subscriber} from '../Subscriber';
import {Subscription} from '../Subscription';

export class IfObservable<T, R> extends Observable<T> {
' tag_class_IfObservable': [T, R];

static create<T, R>(condition: () => boolean,
thenSource?: Observable<T>,
Expand Down
2 changes: 2 additions & 0 deletions src/observable/IntervalObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import {async} from '../scheduler/async';
*
*/
export class IntervalObservable extends Observable<number> {
' tag_class_IntervalObservable': any;

/**
* @param period
* @param scheduler
Expand Down
2 changes: 2 additions & 0 deletions src/observable/IteratorObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import {Subscription} from '../Subscription';
import {Subscriber} from '../Subscriber';

export class IteratorObservable<T> extends Observable<T> {
' tag_class_IteratorObservable': T;

private iterator: any;

static create<T>(iterator: any,
Expand Down
2 changes: 2 additions & 0 deletions src/observable/NeverObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import {noop} from '../util/noop';
*
*/
export class NeverObservable<T> extends Observable<T> {
' tag_class_NeverObservable': T;

/**
* @return {NeverObservable<T>}
* @static true
Expand Down
1 change: 1 addition & 0 deletions src/observable/PromiseObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {Subscription} from '../Subscription';
*
*/
export class PromiseObservable<T> extends Observable<T> {
' tag_class_PromiseObservable': T;

public value: T;

Expand Down
1 change: 1 addition & 0 deletions src/observable/RangeObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {Subscriber} from '../Subscriber';
*
*/
export class RangeObservable extends Observable<number> {
' tag_class_RangeObservable': any;

/**
* @param start
Expand Down
2 changes: 2 additions & 0 deletions src/observable/ScalarObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import {Subscriber} from '../Subscriber';
import {Subscription} from '../Subscription';

export class ScalarObservable<T> extends Observable<T> {
' tag_class_ScalarObservable': T;

static create<T>(value: T, scheduler?: Scheduler): ScalarObservable<T> {
return new ScalarObservable(value, scheduler);
}
Expand Down
2 changes: 2 additions & 0 deletions src/observable/SubscribeOnObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import {asap} from '../scheduler/asap';
import {isNumeric} from '../util/isNumeric';

export class SubscribeOnObservable<T> extends Observable<T> {
' tag_class_SubscribeOnObservable': T;

static create<T>(source: Observable<T>, delay: number = 0, scheduler: Scheduler = asap): Observable<T> {
return new SubscribeOnObservable(source, delay, scheduler);
}
Expand Down
1 change: 1 addition & 0 deletions src/observable/TimerObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {Subscriber} from '../Subscriber';
*
*/
export class TimerObservable extends Observable<number> {
' tag_class_TimerObservable': any;

/**
* @param dueTime
Expand Down
1 change: 1 addition & 0 deletions src/observable/UsingObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {Subscriber} from '../Subscriber';
import {Subscription} from '../Subscription';

export class UsingObservable<T> extends Observable<T> {
' tag_class_UsingObservable': T;

static create<T>(resourceFactory: () => Subscription,
observableFactory: (resource: Subscription) => Observable<T>): Observable<T> {
Expand Down
2 changes: 2 additions & 0 deletions src/subject/AsyncSubject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import {Subscriber} from '../Subscriber';
import {Subscription} from '../Subscription';

export class AsyncSubject<T> extends Subject<T> {
' tag_class_AsyncSubject': T;

value: T = null;
hasNext: boolean = false;

Expand Down
1 change: 1 addition & 0 deletions src/subject/BehaviorSubject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {throwError} from '../util/throwError';
import {ObjectUnsubscribedError} from '../util/ObjectUnsubscribedError';

export class BehaviorSubject<T> extends Subject<T> {
' tag_class_BehaviorSubject': T;

constructor(private _value: T) {
super();
Expand Down
2 changes: 2 additions & 0 deletions src/subject/ReplaySubject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import {Subscription} from '../Subscription';
import {ObserveOnSubscriber} from '../operator/observeOn';

export class ReplaySubject<T> extends Subject<T> {
' tag_class_ReplaySubject': T;

private events: ReplayEvent<T>[] = [];
private scheduler: Scheduler;
private bufferSize: number;
Expand Down