From ecd7f68f06428b955b4de368841f1bd2248c6010 Mon Sep 17 00:00:00 2001 From: Jason Aden Date: Thu, 5 Apr 2018 14:41:28 -0700 Subject: [PATCH] feat(compat): add Observable extension classes with static create() --- compat/observable/ArrayLikeObservable.ts | 7 +++++ compat/observable/ArrayObservable.ts | 7 +++++ compat/observable/BoundCallbackObservable.ts | 28 ++++++++++++++++++ .../observable/BoundNodeCallbackObservable.ts | 20 +++++++++++++ compat/observable/DeferObservable.ts | 7 +++++ compat/observable/EmptyObservable.ts | 7 +++++ compat/observable/ErrorObservable.ts | 7 +++++ compat/observable/ForkJoinObservable.ts | 29 +++++++++++++++++++ compat/observable/FromEventObservable.ts | 18 ++++++++++++ .../observable/FromEventPatternObservable.ts | 9 ++++++ compat/observable/FromObservable.ts | 9 ++++++ compat/observable/GenerateObservable.ts | 19 ++++++++++++ compat/observable/IfObservable.ts | 9 ++++++ compat/observable/IntervalObservable.ts | 8 +++++ compat/observable/IteratorObservable.ts | 7 +++++ compat/observable/NeverObservable.ts | 7 +++++ compat/observable/PairsObservable.ts | 7 +++++ compat/observable/PromiseObservable.ts | 7 +++++ compat/observable/RangeObservable.ts | 9 ++++++ compat/observable/ScalarObservable.ts | 7 +++++ compat/observable/TimerObservable.ts | 9 ++++++ compat/observable/UsingObservable.ts | 8 +++++ compat/observable/fromObservable.ts | 1 - .../observable/ArrayLikeObservable.ts | 1 + legacy-reexport/observable/ArrayObservable.ts | 1 + .../observable/BoundCallbackObservable.ts | 1 + .../observable/BoundNodeCallbackObservable.ts | 1 + legacy-reexport/observable/DeferObservable.ts | 1 + legacy-reexport/observable/EmptyObservable.ts | 1 + legacy-reexport/observable/ErrorObservable.ts | 1 + .../observable/ForkJoinObservable.ts | 1 + .../observable/FromEventObservable.ts | 1 + .../observable/FromEventPatternObservable.ts | 1 + legacy-reexport/observable/FromObservable.ts | 1 + .../observable/GenerateObservable.ts | 1 + legacy-reexport/observable/IfObservable.ts | 1 + .../observable/IntervalObservable.ts | 1 + .../observable/IteratorObservable.ts | 1 + legacy-reexport/observable/NeverObservable.ts | 1 + legacy-reexport/observable/PairsObservable.ts | 1 + .../observable/PromiseObservable.ts | 1 + legacy-reexport/observable/RangeObservable.ts | 1 + .../observable/ScalarObservable.ts | 1 + legacy-reexport/observable/TimerObservable.ts | 1 + legacy-reexport/observable/UsingObservable.ts | 1 + legacy-reexport/observable/fromObservable.ts | 1 - spec/observables/ScalarObservable-spec.ts | 2 +- src/internal-compatibility/index.ts | 2 ++ 48 files changed, 270 insertions(+), 3 deletions(-) create mode 100644 compat/observable/ArrayLikeObservable.ts create mode 100644 compat/observable/ArrayObservable.ts create mode 100644 compat/observable/BoundCallbackObservable.ts create mode 100644 compat/observable/BoundNodeCallbackObservable.ts create mode 100644 compat/observable/DeferObservable.ts create mode 100644 compat/observable/EmptyObservable.ts create mode 100644 compat/observable/ErrorObservable.ts create mode 100644 compat/observable/ForkJoinObservable.ts create mode 100644 compat/observable/FromEventObservable.ts create mode 100644 compat/observable/FromEventPatternObservable.ts create mode 100644 compat/observable/FromObservable.ts create mode 100644 compat/observable/GenerateObservable.ts create mode 100644 compat/observable/IfObservable.ts create mode 100644 compat/observable/IntervalObservable.ts create mode 100644 compat/observable/IteratorObservable.ts create mode 100644 compat/observable/NeverObservable.ts create mode 100644 compat/observable/PairsObservable.ts create mode 100644 compat/observable/PromiseObservable.ts create mode 100644 compat/observable/RangeObservable.ts create mode 100644 compat/observable/ScalarObservable.ts create mode 100644 compat/observable/TimerObservable.ts create mode 100644 compat/observable/UsingObservable.ts delete mode 100644 compat/observable/fromObservable.ts create mode 100644 legacy-reexport/observable/ArrayLikeObservable.ts create mode 100644 legacy-reexport/observable/ArrayObservable.ts create mode 100644 legacy-reexport/observable/BoundCallbackObservable.ts create mode 100644 legacy-reexport/observable/BoundNodeCallbackObservable.ts create mode 100644 legacy-reexport/observable/DeferObservable.ts create mode 100644 legacy-reexport/observable/EmptyObservable.ts create mode 100644 legacy-reexport/observable/ErrorObservable.ts create mode 100644 legacy-reexport/observable/ForkJoinObservable.ts create mode 100644 legacy-reexport/observable/FromEventObservable.ts create mode 100644 legacy-reexport/observable/FromEventPatternObservable.ts create mode 100644 legacy-reexport/observable/FromObservable.ts create mode 100644 legacy-reexport/observable/GenerateObservable.ts create mode 100644 legacy-reexport/observable/IfObservable.ts create mode 100644 legacy-reexport/observable/IntervalObservable.ts create mode 100644 legacy-reexport/observable/IteratorObservable.ts create mode 100644 legacy-reexport/observable/NeverObservable.ts create mode 100644 legacy-reexport/observable/PairsObservable.ts create mode 100644 legacy-reexport/observable/PromiseObservable.ts create mode 100644 legacy-reexport/observable/RangeObservable.ts create mode 100644 legacy-reexport/observable/ScalarObservable.ts create mode 100644 legacy-reexport/observable/TimerObservable.ts create mode 100644 legacy-reexport/observable/UsingObservable.ts delete mode 100644 legacy-reexport/observable/fromObservable.ts diff --git a/compat/observable/ArrayLikeObservable.ts b/compat/observable/ArrayLikeObservable.ts new file mode 100644 index 0000000000..1c1438b3cc --- /dev/null +++ b/compat/observable/ArrayLikeObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, from } from 'rxjs'; + +export class ArrayLikeObservable extends Observable { + static create(arrayLike: ArrayLike, scheduler?: SchedulerLike): Observable { + return from(arrayLike, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/ArrayObservable.ts b/compat/observable/ArrayObservable.ts new file mode 100644 index 0000000000..6227c65487 --- /dev/null +++ b/compat/observable/ArrayObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, from } from 'rxjs'; + +export class ArrayObservable extends Observable { + static create(array: T[], scheduler?: SchedulerLike) { + return from(array, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/BoundCallbackObservable.ts b/compat/observable/BoundCallbackObservable.ts new file mode 100644 index 0000000000..37df7370b0 --- /dev/null +++ b/compat/observable/BoundCallbackObservable.ts @@ -0,0 +1,28 @@ +import { Observable, SchedulerLike, bindCallback } from 'rxjs'; + +export class BoundCallbackObservable extends Observable { + /* tslint:disable:max-line-length */ + static create(callbackFunc: (callback: () => any) => any, selector?: void, scheduler?: SchedulerLike): () => Observable; + static create(callbackFunc: (callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): () => Observable; + static create(callbackFunc: (v1: T, callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T) => Observable; + static create(callbackFunc: (v1: T, v2: T2, callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, callback: (result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => Observable; + static create(callbackFunc: (callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): () => Observable; + static create(callbackFunc: (v1: T, callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): (v1: T) => Observable; + static create(callbackFunc: (v1: T, v2: T2, callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): (v1: T, v2: T2) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, callback: (...args: any[]) => any) => any, selector: (...args: any[]) => R, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => Observable; + static create(callbackFunc: Function, selector?: void, scheduler?: SchedulerLike): (...args: any[]) => Observable; + static create(callbackFunc: Function, selector?: (...args: any[]) => T, scheduler?: SchedulerLike): (...args: any[]) => Observable; + /* tslint:enable:max-line-length */ + static create(func: Function, + selector: Function | void = undefined, + scheduler?: SchedulerLike): (...args: any[]) => Observable { + return bindCallback(func, selector, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/BoundNodeCallbackObservable.ts b/compat/observable/BoundNodeCallbackObservable.ts new file mode 100644 index 0000000000..9a5a0aa762 --- /dev/null +++ b/compat/observable/BoundNodeCallbackObservable.ts @@ -0,0 +1,20 @@ +import { Observable, SchedulerLike, bindNodeCallback } from 'rxjs'; + +export class BoundNodeCallbackObservable extends Observable { + /* tslint:disable:max-line-length */ + static create(callbackFunc: (callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): () => Observable; + static create(callbackFunc: (v1: T, callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T) => Observable; + static create(callbackFunc: (v1: T, v2: T2, callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => Observable; + static create(callbackFunc: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6, callback: (err: any, result: R) => any) => any, selector?: void, scheduler?: SchedulerLike): (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => Observable; + static create(callbackFunc: Function, selector?: void, scheduler?: SchedulerLike): (...args: any[]) => Observable; + static create(callbackFunc: Function, selector?: (...args: any[]) => T, scheduler?: SchedulerLike): (...args: any[]) => Observable; + /* tslint:enable:max-line-length */ + static create(func: Function, + selector: Function | void = undefined, + scheduler?: SchedulerLike): (...args: any[]) => Observable { + return bindNodeCallback(func, selector, scheduler); + } +} diff --git a/compat/observable/DeferObservable.ts b/compat/observable/DeferObservable.ts new file mode 100644 index 0000000000..32672e2f52 --- /dev/null +++ b/compat/observable/DeferObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SubscribableOrPromise, defer } from 'rxjs'; + +export class DeferObservable extends Observable { + static create(observableFactory: () => SubscribableOrPromise | void): Observable { + return defer(observableFactory); + } +} \ No newline at end of file diff --git a/compat/observable/EmptyObservable.ts b/compat/observable/EmptyObservable.ts new file mode 100644 index 0000000000..4c992a3292 --- /dev/null +++ b/compat/observable/EmptyObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, empty } from 'rxjs'; + +export class EmptyObservable extends Observable { + static create(scheduler?: SchedulerLike): Observable { + return empty(scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/ErrorObservable.ts b/compat/observable/ErrorObservable.ts new file mode 100644 index 0000000000..3e98ca7fa2 --- /dev/null +++ b/compat/observable/ErrorObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, throwError } from 'rxjs'; + +export class ErrorObservable extends Observable { + static create(error: any, scheduler?: SchedulerLike) { + return throwError(error, scheduler); + } +} diff --git a/compat/observable/ForkJoinObservable.ts b/compat/observable/ForkJoinObservable.ts new file mode 100644 index 0000000000..0bc3a4cbe7 --- /dev/null +++ b/compat/observable/ForkJoinObservable.ts @@ -0,0 +1,29 @@ +import { Observable, SubscribableOrPromise, forkJoin } from 'rxjs'; + +export class ForkJoinObservable extends Observable { + /* tslint:disable:max-line-length */ + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise): Observable<[T, T2]>; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise): Observable<[T, T2, T3]>; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, v4: SubscribableOrPromise): Observable<[T, T2, T3, T4]>; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, v4: SubscribableOrPromise, v5: SubscribableOrPromise): Observable<[T, T2, T3, T4, T5]>; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, v4: SubscribableOrPromise, v5: SubscribableOrPromise, v6: SubscribableOrPromise): Observable<[T, T2, T3, T4, T5, T6]>; + static create(v1: SubscribableOrPromise, project: (v1: T) => R): Observable; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, project: (v1: T, v2: T2) => R): Observable; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, project: (v1: T, v2: T2, v3: T3) => R): Observable; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, v4: SubscribableOrPromise, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): Observable; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, v4: SubscribableOrPromise, v5: SubscribableOrPromise, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): Observable; + static create(v1: SubscribableOrPromise, v2: SubscribableOrPromise, v3: SubscribableOrPromise, v4: SubscribableOrPromise, v5: SubscribableOrPromise, v6: SubscribableOrPromise, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): Observable; + static create(sources: SubscribableOrPromise[]): Observable; + static create(sources: SubscribableOrPromise[]): Observable; + static create(sources: SubscribableOrPromise[], project: (...values: Array) => R): Observable; + static create(sources: SubscribableOrPromise[], project: (...values: Array) => R): Observable; + static create(...sources: SubscribableOrPromise[]): Observable; + static create(...sources: SubscribableOrPromise[]): Observable; + /* tslint:enable:max-line-length */ + + static create(...sources: Array | + Array> | + ((...values: Array) => any)>): Observable { + return forkJoin(...sources); + } +} \ No newline at end of file diff --git a/compat/observable/FromEventObservable.ts b/compat/observable/FromEventObservable.ts new file mode 100644 index 0000000000..2fc0e64b60 --- /dev/null +++ b/compat/observable/FromEventObservable.ts @@ -0,0 +1,18 @@ +import { Observable, fromEvent } from 'rxjs'; +import { EventTargetLike } from 'rxjs/internal-compatibility'; + +export class FromEventObservable extends Observable { + /* tslint:disable:max-line-length */ + static create(target: EventTargetLike, eventName: string): Observable; + static create(target: EventTargetLike, eventName: string, selector: ((...args: any[]) => T)): Observable; + static create(target: EventTargetLike, eventName: string, options: EventListenerOptions): Observable; + static create(target: EventTargetLike, eventName: string, options: EventListenerOptions, selector: ((...args: any[]) => T)): Observable; + /* tslint:enable:max-line-length */ + + static create(target: EventTargetLike, + eventName: string, + options?: EventListenerOptions | ((...args: any[]) => T), + selector?: ((...args: any[]) => T)): Observable { + return fromEvent(target, eventName, options as EventListenerOptions, selector); + } +} \ No newline at end of file diff --git a/compat/observable/FromEventPatternObservable.ts b/compat/observable/FromEventPatternObservable.ts new file mode 100644 index 0000000000..b2b10071c3 --- /dev/null +++ b/compat/observable/FromEventPatternObservable.ts @@ -0,0 +1,9 @@ +import { Observable, fromEventPattern } from 'rxjs'; + +export class FromEventPatternObservable extends Observable { + static create(addHandler: (handler: Function) => any, + removeHandler?: (handler: Function, signal?: any) => void, + selector?: (...args: Array) => T) { + return fromEventPattern(addHandler, removeHandler, selector); + } +} \ No newline at end of file diff --git a/compat/observable/FromObservable.ts b/compat/observable/FromObservable.ts new file mode 100644 index 0000000000..b4c360d9d7 --- /dev/null +++ b/compat/observable/FromObservable.ts @@ -0,0 +1,9 @@ +import { Observable, ObservableInput, SchedulerLike, from } from 'rxjs'; + +export class FromObservable extends Observable { + static create(ish: ObservableInput, scheduler?: SchedulerLike): Observable; + static create(ish: ArrayLike, scheduler?: SchedulerLike): Observable; + static create(ish: ObservableInput, scheduler?: SchedulerLike): Observable { + return from(ish, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/GenerateObservable.ts b/compat/observable/GenerateObservable.ts new file mode 100644 index 0000000000..bb9cd02efc --- /dev/null +++ b/compat/observable/GenerateObservable.ts @@ -0,0 +1,19 @@ +import { Observable, SchedulerLike, generate } from 'rxjs'; +import { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from 'rxjs/internal-compatibility'; + +export class GenerateObservable extends Observable { + /* tslint:disable:max-line-length */ + static create(initialState: S, condition: ConditionFunc, iterate: IterateFunc, resultSelector: ResultFunc, scheduler?: SchedulerLike): Observable; + static create(initialState: S, condition: ConditionFunc, iterate: IterateFunc, scheduler?: SchedulerLike): Observable; + static create(options: GenerateBaseOptions): Observable; + static create(options: GenerateOptions): Observable; + /* tslint:enable:max-line-length */ + + static create(initialStateOrOptions: S | GenerateOptions, + condition?: ConditionFunc, + iterate?: IterateFunc, + resultSelectorOrObservable?: (ResultFunc) | SchedulerLike, + scheduler?: SchedulerLike): Observable { + return generate(initialStateOrOptions, condition, iterate, >resultSelectorOrObservable, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/IfObservable.ts b/compat/observable/IfObservable.ts new file mode 100644 index 0000000000..e000027e44 --- /dev/null +++ b/compat/observable/IfObservable.ts @@ -0,0 +1,9 @@ +import { Observable, SubscribableOrPromise, iif } from 'rxjs'; + +export class IfObservable extends Observable { + static create(condition: () => boolean | void, + thenSource?: SubscribableOrPromise | void, + elseSource?: SubscribableOrPromise | void): Observable { + return iif(<() => boolean>condition, >thenSource, >elseSource); + } +} \ No newline at end of file diff --git a/compat/observable/IntervalObservable.ts b/compat/observable/IntervalObservable.ts new file mode 100644 index 0000000000..0215d34154 --- /dev/null +++ b/compat/observable/IntervalObservable.ts @@ -0,0 +1,8 @@ +import { Observable, SchedulerLike, asyncScheduler, interval } from 'rxjs'; + +export class IntervalObservable extends Observable { + static create(period: number = 0, + scheduler: SchedulerLike = asyncScheduler): Observable { + return interval(period, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/IteratorObservable.ts b/compat/observable/IteratorObservable.ts new file mode 100644 index 0000000000..c82322e250 --- /dev/null +++ b/compat/observable/IteratorObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, from } from 'rxjs'; + +export class IteratorObservable extends Observable { + static create(iterator: any, scheduler?: SchedulerLike) { + return from(iterator, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/NeverObservable.ts b/compat/observable/NeverObservable.ts new file mode 100644 index 0000000000..9b4a8b763e --- /dev/null +++ b/compat/observable/NeverObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, NEVER } from 'rxjs'; + +export class NeverObservable extends Observable { + static create() { + return NEVER; + } +} \ No newline at end of file diff --git a/compat/observable/PairsObservable.ts b/compat/observable/PairsObservable.ts new file mode 100644 index 0000000000..59003597a4 --- /dev/null +++ b/compat/observable/PairsObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, pairs } from 'rxjs'; + +export class PairsObservable extends Observable { + static create(obj: Object, scheduler?: SchedulerLike): Observable<(string | T)[]> { + return pairs(obj, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/PromiseObservable.ts b/compat/observable/PromiseObservable.ts new file mode 100644 index 0000000000..0da931d724 --- /dev/null +++ b/compat/observable/PromiseObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, from } from 'rxjs'; + +export class PromiseObservable extends Observable { + static create(promise: PromiseLike, scheduler?: SchedulerLike): Observable { + return from(promise, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/RangeObservable.ts b/compat/observable/RangeObservable.ts new file mode 100644 index 0000000000..d269f573a5 --- /dev/null +++ b/compat/observable/RangeObservable.ts @@ -0,0 +1,9 @@ +import { Observable, SchedulerLike, range } from 'rxjs'; + +export class RangeObservable extends Observable { + static create(start: number = 0, + count: number = 0, + scheduler?: SchedulerLike): Observable { + return range(start, count, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/ScalarObservable.ts b/compat/observable/ScalarObservable.ts new file mode 100644 index 0000000000..63f1d0660a --- /dev/null +++ b/compat/observable/ScalarObservable.ts @@ -0,0 +1,7 @@ +import { Observable, SchedulerLike, of } from 'rxjs'; + +export class ScalarObservable extends Observable { + static create(value: T, scheduler?: SchedulerLike) { + return arguments.length > 1 ? of(value, scheduler) : of(value); + } +} \ No newline at end of file diff --git a/compat/observable/TimerObservable.ts b/compat/observable/TimerObservable.ts new file mode 100644 index 0000000000..b6b0ae9b78 --- /dev/null +++ b/compat/observable/TimerObservable.ts @@ -0,0 +1,9 @@ +import { Observable, SchedulerLike, timer } from 'rxjs'; + +export class TimerObservable extends Observable { + static create(initialDelay: number | Date = 0, + period?: number | SchedulerLike, + scheduler?: SchedulerLike): Observable { + return timer(initialDelay, period, scheduler); + } +} \ No newline at end of file diff --git a/compat/observable/UsingObservable.ts b/compat/observable/UsingObservable.ts new file mode 100644 index 0000000000..468875f577 --- /dev/null +++ b/compat/observable/UsingObservable.ts @@ -0,0 +1,8 @@ +import { Observable, Unsubscribable, SubscribableOrPromise, using } from 'rxjs'; + +export class UsingObservable extends Observable { + static create(resourceFactory: () => Unsubscribable | void, + observableFactory: (resource: Unsubscribable | void) => SubscribableOrPromise | void): Observable { + return using(resourceFactory, observableFactory); + } +} \ No newline at end of file diff --git a/compat/observable/fromObservable.ts b/compat/observable/fromObservable.ts deleted file mode 100644 index 9959665ed0..0000000000 --- a/compat/observable/fromObservable.ts +++ /dev/null @@ -1 +0,0 @@ -export { from as fromObservable } from 'rxjs'; diff --git a/legacy-reexport/observable/ArrayLikeObservable.ts b/legacy-reexport/observable/ArrayLikeObservable.ts new file mode 100644 index 0000000000..30da288167 --- /dev/null +++ b/legacy-reexport/observable/ArrayLikeObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ArrayLikeObservable'; diff --git a/legacy-reexport/observable/ArrayObservable.ts b/legacy-reexport/observable/ArrayObservable.ts new file mode 100644 index 0000000000..ce2da267cd --- /dev/null +++ b/legacy-reexport/observable/ArrayObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ArrayObservable'; diff --git a/legacy-reexport/observable/BoundCallbackObservable.ts b/legacy-reexport/observable/BoundCallbackObservable.ts new file mode 100644 index 0000000000..179030611e --- /dev/null +++ b/legacy-reexport/observable/BoundCallbackObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/BoundCallbackObservable'; diff --git a/legacy-reexport/observable/BoundNodeCallbackObservable.ts b/legacy-reexport/observable/BoundNodeCallbackObservable.ts new file mode 100644 index 0000000000..7d0eb0367d --- /dev/null +++ b/legacy-reexport/observable/BoundNodeCallbackObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/BoundNodeCallbackObservable'; diff --git a/legacy-reexport/observable/DeferObservable.ts b/legacy-reexport/observable/DeferObservable.ts new file mode 100644 index 0000000000..cec9147a5b --- /dev/null +++ b/legacy-reexport/observable/DeferObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/DeferObservable'; diff --git a/legacy-reexport/observable/EmptyObservable.ts b/legacy-reexport/observable/EmptyObservable.ts new file mode 100644 index 0000000000..6f9f0ba105 --- /dev/null +++ b/legacy-reexport/observable/EmptyObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/EmptyObservable'; diff --git a/legacy-reexport/observable/ErrorObservable.ts b/legacy-reexport/observable/ErrorObservable.ts new file mode 100644 index 0000000000..68a7dce975 --- /dev/null +++ b/legacy-reexport/observable/ErrorObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ErrorObservable'; diff --git a/legacy-reexport/observable/ForkJoinObservable.ts b/legacy-reexport/observable/ForkJoinObservable.ts new file mode 100644 index 0000000000..c9fa4dd636 --- /dev/null +++ b/legacy-reexport/observable/ForkJoinObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ForkJoinObservable'; diff --git a/legacy-reexport/observable/FromEventObservable.ts b/legacy-reexport/observable/FromEventObservable.ts new file mode 100644 index 0000000000..04291abdb9 --- /dev/null +++ b/legacy-reexport/observable/FromEventObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromEventObservable'; diff --git a/legacy-reexport/observable/FromEventPatternObservable.ts b/legacy-reexport/observable/FromEventPatternObservable.ts new file mode 100644 index 0000000000..e0a473ca7a --- /dev/null +++ b/legacy-reexport/observable/FromEventPatternObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromEventPatternObservable'; diff --git a/legacy-reexport/observable/FromObservable.ts b/legacy-reexport/observable/FromObservable.ts new file mode 100644 index 0000000000..c4ec6648c8 --- /dev/null +++ b/legacy-reexport/observable/FromObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromObservable'; diff --git a/legacy-reexport/observable/GenerateObservable.ts b/legacy-reexport/observable/GenerateObservable.ts new file mode 100644 index 0000000000..8441d24bae --- /dev/null +++ b/legacy-reexport/observable/GenerateObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/GenerateObservable'; diff --git a/legacy-reexport/observable/IfObservable.ts b/legacy-reexport/observable/IfObservable.ts new file mode 100644 index 0000000000..5eb484aadf --- /dev/null +++ b/legacy-reexport/observable/IfObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IfObservable'; diff --git a/legacy-reexport/observable/IntervalObservable.ts b/legacy-reexport/observable/IntervalObservable.ts new file mode 100644 index 0000000000..dfe181f07e --- /dev/null +++ b/legacy-reexport/observable/IntervalObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IntervalObservable'; diff --git a/legacy-reexport/observable/IteratorObservable.ts b/legacy-reexport/observable/IteratorObservable.ts new file mode 100644 index 0000000000..860fbefb6b --- /dev/null +++ b/legacy-reexport/observable/IteratorObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IteratorObservable'; diff --git a/legacy-reexport/observable/NeverObservable.ts b/legacy-reexport/observable/NeverObservable.ts new file mode 100644 index 0000000000..de440577a7 --- /dev/null +++ b/legacy-reexport/observable/NeverObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/NeverObservable'; diff --git a/legacy-reexport/observable/PairsObservable.ts b/legacy-reexport/observable/PairsObservable.ts new file mode 100644 index 0000000000..d0307884b2 --- /dev/null +++ b/legacy-reexport/observable/PairsObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/PairsObservable'; diff --git a/legacy-reexport/observable/PromiseObservable.ts b/legacy-reexport/observable/PromiseObservable.ts new file mode 100644 index 0000000000..ae0aac25a8 --- /dev/null +++ b/legacy-reexport/observable/PromiseObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/PromiseObservable'; diff --git a/legacy-reexport/observable/RangeObservable.ts b/legacy-reexport/observable/RangeObservable.ts new file mode 100644 index 0000000000..f500c0a99a --- /dev/null +++ b/legacy-reexport/observable/RangeObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/RangeObservable'; diff --git a/legacy-reexport/observable/ScalarObservable.ts b/legacy-reexport/observable/ScalarObservable.ts new file mode 100644 index 0000000000..a353068a62 --- /dev/null +++ b/legacy-reexport/observable/ScalarObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ScalarObservable'; diff --git a/legacy-reexport/observable/TimerObservable.ts b/legacy-reexport/observable/TimerObservable.ts new file mode 100644 index 0000000000..02b4a51331 --- /dev/null +++ b/legacy-reexport/observable/TimerObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/TimerObservable'; diff --git a/legacy-reexport/observable/UsingObservable.ts b/legacy-reexport/observable/UsingObservable.ts new file mode 100644 index 0000000000..c24410f9e8 --- /dev/null +++ b/legacy-reexport/observable/UsingObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/UsingObservable'; diff --git a/legacy-reexport/observable/fromObservable.ts b/legacy-reexport/observable/fromObservable.ts deleted file mode 100644 index d201f2bdb0..0000000000 --- a/legacy-reexport/observable/fromObservable.ts +++ /dev/null @@ -1 +0,0 @@ -export * from 'rxjs-compat/observable/fromObservable'; diff --git a/spec/observables/ScalarObservable-spec.ts b/spec/observables/ScalarObservable-spec.ts index 31ae60ff3e..160647a38f 100644 --- a/spec/observables/ScalarObservable-spec.ts +++ b/spec/observables/ScalarObservable-spec.ts @@ -1,6 +1,6 @@ import { expect } from 'chai'; import * as Rx from 'rxjs/Rx'; -import { scalar } from 'rxjs/observable/scalar'; +import { of as scalar } from 'rxjs'; declare const rxTestScheduler: Rx.TestScheduler; diff --git a/src/internal-compatibility/index.ts b/src/internal-compatibility/index.ts index 2628f1fe1d..f8a3a18c77 100644 --- a/src/internal-compatibility/index.ts +++ b/src/internal-compatibility/index.ts @@ -15,6 +15,8 @@ export { AjaxRequest, AjaxCreationMethod, ajaxGet, ajaxPost, ajaxDelete, ajaxPut AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; export { WebSocketSubjectConfig, WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; export { CombineLatestOperator } from '../internal/observable/combineLatest'; +export { EventTargetLike } from '../internal/observable/fromEvent'; +export { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from '../internal/observable/generate'; export { dispatch } from '../internal/observable/range'; export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable';