diff --git a/rx.js/rx.js.async.d.ts b/rx.js/rx.js.async.d.ts index fa336ac7e4..49e1ec59b5 100644 --- a/rx.js/rx.js.async.d.ts +++ b/rx.js/rx.js.async.d.ts @@ -3,14 +3,11 @@ // Type definitions for RxJS-Async package 2.2 // Project: http://rx.codeplex.com/ // Definitions by: zoetrope +// Revision by: Igor Oleinikov // Definitions: https://github.com/borisyankov/DefinitelyTyped -// -// Dependencies: -// -> rx.js -// -> rx.async.js declare module Rx { - interface Observable { + interface ObservableStatic { start(func: () => T, scheduler?: IScheduler, context?: any): Observable; toAsync(func: Function, scheduler?: IScheduler, context?: any): (...arguments: any[]) => Observable; fromCallback(func: (...arguments: any[]) => void, scheduler?: IScheduler, context?: any, selector?: (...arguments: T[])=>T): () => Observable; diff --git a/rx.js/rx.js.binding.d.ts b/rx.js/rx.js.binding.d.ts index 0921f30c58..0a749cc8e8 100644 --- a/rx.js/rx.js.binding.d.ts +++ b/rx.js/rx.js.binding.d.ts @@ -3,41 +3,40 @@ // Type definitions for RxJS-Binding package // Project: http://rx.codeplex.com/ // Definitions by: Carl de Billy +// Revision by: Igor Oleinikov // Definitions: https://github.com/borisyankov/DefinitelyTyped -// -// Dependencies: -// -> rx.js -// -> rx.binding.js declare module Rx { - - interface ReplaySubject extends ISubject { - new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + export interface BehaviorSubject extends Subject { } - var ReplaySubject: { - new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; - } - - interface BehaviorSubject extends ISubject { - new (initialValue: T): BehaviorSubject; + interface BehaviorSubjectStatic { + new (initialValue: T): BehaviorSubject; } - var BehaviorSubject: { - new (initialValue: T): BehaviorSubject; - } + export var BehaviorSubject: BehaviorSubjectStatic; - interface ConnectableObservable extends Observable{ + export interface ReplaySubject extends Subject { + } + + interface ReplaySubjectStatic { + new (bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; + } + + export var ReplaySubject: ReplaySubjectStatic; + + interface ConnectableObservable extends Observable { connect(): IDisposable; refCount(): Observable; } - var ConnectableObservable: { + interface ConnectableObservableStatic { new (): ConnectableObservable; - } + } - interface Observable { + export var ConnectableObservable: ConnectableObservableStatic; + export interface Observable { publish(): ConnectableObservable; publish(selector: (item: T) => Observable): ConnectableObservable; publishLast(): ConnectableObservable; @@ -47,8 +46,4 @@ declare module Rx { replay(selector?: (source: Observable) => ReplaySubject, bufferSize?: number, window?: number, scheduler?: IScheduler): ReplaySubject; } - - - interface Observable { - } } diff --git a/rx.js/rx.js.coincidence.d.ts b/rx.js/rx.js.coincidence.d.ts index 7aa0ae65aa..3ec1a3a25f 100644 --- a/rx.js/rx.js.coincidence.d.ts +++ b/rx.js/rx.js.coincidence.d.ts @@ -33,8 +33,4 @@ declare module Rx { window(bufferOpenings: Observable, bufferClosingSelector: (opening: TBufferOpening) => Observable): Observable; } - - - interface Observable { - } } diff --git a/rx.js/rx.js.d.ts b/rx.js/rx.js.d.ts index 84ea913322..b2ad79a48f 100644 --- a/rx.js/rx.js.d.ts +++ b/rx.js/rx.js.d.ts @@ -1,37 +1,49 @@ // Type definitions for RxJS // Project: http://rx.codeplex.com/ // Definitions by: gsino +// Revision by: Igor Oleinikov // Definitions: https://github.com/borisyankov/DefinitelyTyped - declare module Rx { export module Internals { + function isEqual(left: any, right: any): boolean; function inherits(child: Function, parent: Function): Function; function addProperties(obj: Object, ...sourcces: Object[]): void; function addRef(xs: Observable, r: { getDisposable(): IDisposable; }): Observable; - } - //Collections - interface IIndexedItem { - id: number; - value: IScheduledItem; + // Priority Queue for Scheduling + export class PriorityQueue { + constructor(capacity: number); - compareTo(other: IIndexedItem): number; - } + length: number; - // Priority Queue for Scheduling - interface IPriorityQueue { - items: IIndexedItem[]; - length: number; + isHigherPriority(left: number, right: number): boolean; + percolate(index: number): void; + heapify(index: number): void; + peek(): ScheduledItem; + removeAt(index: number): void; + dequeue(): ScheduledItem; + enqueue(item: ScheduledItem): void; + remove(item: ScheduledItem): boolean; - isHigherPriority(left: number, right: number): boolean; - percolate(index: number): void; - heapify(index: number): void; - peek(): IIndexedItem; - removeAt(index: number): void; - dequeue(): IIndexedItem; - enqueue(item: IIndexedItem): void; - remove(item: IIndexedItem): boolean; + static count: number; + } + + export class ScheduledItem { + constructor(scheduler: IScheduler, state: any, action: (scheduler: IScheduler, state) => IDisposable, dueTime: TTime, comparer?: (x: TTime, y: TTime) => number); + + scheduler: IScheduler; + state: TTime; + action: (scheduler: IScheduler, state: any) => IDisposable; + dueTime: TTime; + comparer: (x: TTime, y: TTime) => number; + disposable: SingleAssignmentDisposable; + + invoke(): void; + compareTo(other: ScheduledItem): number; + isCancelled(): boolean; + invokeCore(): IDisposable; + } } export interface IDisposable { @@ -94,20 +106,6 @@ declare module Rx { getDisposable(): IDisposable; } - interface IScheduledItem { - scheduler: IScheduler; - state: any; - action: (scheduler: IScheduler, state) => IDisposable; - dueTime: number; - comparer: (x: number, y: number) =>number; - disposable: SingleAssignmentDisposable; - - invoke(): void; - compareTo(other: IScheduledItem): number; - isCancelled(): boolean; - invokeCore(): IDisposable; - } - export interface IScheduler { now(): number; catch(handler: (exception: any) => boolean): IScheduler; @@ -355,22 +353,4 @@ declare module Rx { } export var AsyncSubject: AsyncSubjectStatic; - - export interface BehaviorSubject extends Subject { - } - - interface BehaviorSubjectStatic { - new (initialValue: T): BehaviorSubject; - } - - export var BehaviorSubject: BehaviorSubjectStatic; - - export interface ReplaySubject extends Subject { - } - - interface ReplaySubjectStatic { - new (initialValue: T): ReplaySubject; - } - - export var ReplaySubject: ReplaySubjectStatic; } diff --git a/rx.js/rx.js.experimental.d.ts b/rx.js/rx.js.experimental.d.ts index 1a1c38f54a..a1a7fbea36 100644 --- a/rx.js/rx.js.experimental.d.ts +++ b/rx.js/rx.js.experimental.d.ts @@ -60,7 +60,7 @@ declare module Rx { manySelect(selector: (item: Observable, index: number, source: Observable) => TResult, scheduler?: IScheduler): Observable; } - interface Observable { + interface ObservableStatic { /** * Determines whether an observable collection contains values. There is an alias for this method called 'ifThen' for browsers +// Revision by: Igor Oleinikov // Definitions: https://github.com/borisyankov/DefinitelyTyped -// -// Dependencies: -// -> rx.js -// -> rx.virtualtime.js declare module Rx { // Virtual IScheduler - interface IVirtualTimeScheduler extends IScheduler { - toRelative(duetime): number; - toDateTimeOffset(duetime: number): number; + export /*abstract*/ class VirtualTimeScheduler extends Scheduler { + constructor(initialClock: TAbsolute, comparer: (first: TAbsolute, second: TAbsolute) => number); - clock: number; - comparer: (x: number, y: number) =>number; - isEnabled: boolean; - queue: IPriorityQueue; - scheduleRelativeWithState(state: any, dueTime: number, action: (scheduler: IScheduler, state: any) =>IDisposable): IDisposable; - scheduleRelative(dueTime: number, action: () =>void ): IDisposable; - start(): IDisposable; - stop(): void; - advanceTo(time: number); - advanceBy(time: number); - sleep(time: number); - getNext(): IScheduledItem; - scheduleAbsolute(dueTime: number, action: () =>void ); - scheduleAbsoluteWithState(state: any, dueTime: number, action: (scheduler: IScheduler, state: any) =>IDisposable): IDisposable; - } - //export module VirtualTimeScheduler { - // //absract - // function new (initialClock: number, comparer: (x: number, y: number) =>number): IVirtualTimeScheduler; - //} -} \ No newline at end of file + advanceBy(time: TRelative); + advanceTo(time: TAbsolute); + scheduleAbsolute(dueTime: TAbsolute, action: () => void); + scheduleAbsoluteWithState(state: TState, dueTime: TAbsolute, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + scheduleRelative(dueTime: TRelative, action: () => void): IDisposable; + scheduleRelativeWithState(state: TState, dueTime: TRelative, action: (scheduler: IScheduler, state: TState) => IDisposable): IDisposable; + sleep(time: TRelative); + start(): IDisposable; + stop(): void; + + isEnabled: boolean; + + /* protected abstract */ add(from: TAbsolute, by: TRelative): TAbsolute; + /* protected abstract */ toDateTimeOffset(duetime: TAbsolute): number; + /* protected abstract */ toRelative(duetime: number): TRelative; + + /* protected */ getNext(): Internals.ScheduledItem; + } + + export class HistoricalScheduler extends VirtualTimeScheduler { + constructor(initialClock: number, comparer: (first: number, second: number) => number); + } +}