From 35f2f6c2ee702b13fbeda6c3f0332beb195e424b Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Mon, 28 Oct 2013 23:29:01 +0400 Subject: [PATCH 1/4] Added knockout.rx definitions RxJS-Knockout binding --- knockout.rx/knockout.rx-tests.ts | 12 ++++++++++++ knockout.rx/knockout.rx.d.ts | 14 ++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 knockout.rx/knockout.rx-tests.ts create mode 100644 knockout.rx/knockout.rx.d.ts diff --git a/knockout.rx/knockout.rx-tests.ts b/knockout.rx/knockout.rx-tests.ts new file mode 100644 index 0000000000..674e9bb6a4 --- /dev/null +++ b/knockout.rx/knockout.rx-tests.ts @@ -0,0 +1,12 @@ +/// + +var ax: Rx.IObservable; + +var ao = ax.toKoObservable(); + +ao(100); +ao.getSubscriptionsCount(); + +ao.toObservable(); +ao.toObservable("change"); +ao.toObservable("error"); \ No newline at end of file diff --git a/knockout.rx/knockout.rx.d.ts b/knockout.rx/knockout.rx.d.ts new file mode 100644 index 0000000000..4187afc280 --- /dev/null +++ b/knockout.rx/knockout.rx.d.ts @@ -0,0 +1,14 @@ +/// +/// + +interface KnockoutSubscribableFunctions { + toObservable(event?: string): Rx.IObservable; + toObservable(event: string): Rx.IObservable; +} + +declare module Rx { + interface IObservable { + toKoSubscribable(): KnockoutSubscribable; + toKoObservable(initialValue?: T): KnockoutObservable; + } +} From 87d312bed7ccacb4fadc35835572989f3f55323b Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Tue, 29 Oct 2013 17:02:54 +0400 Subject: [PATCH 2/4] Removed read and write functions from subscribable read/write defined only in observable and computed --- knockout/knockout.d.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/knockout/knockout.d.ts b/knockout/knockout.d.ts index 63f9938943..c3d6328360 100644 --- a/knockout/knockout.d.ts +++ b/knockout/knockout.d.ts @@ -52,10 +52,8 @@ interface KnockoutSubscription { } interface KnockoutSubscribable extends KnockoutSubscribableFunctions { - (): T; - (value: T): void; - subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription; + subscribe(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription; extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable; getSubscriptionsCount(): number; } @@ -70,6 +68,9 @@ interface KnockoutComputedStatic { } interface KnockoutComputed extends KnockoutSubscribable, KnockoutComputedFunctions { + (): T; + (value: T): void; + peek(): T; dispose(): void; isActive(): boolean; @@ -92,6 +93,9 @@ interface KnockoutObservableStatic { } interface KnockoutObservable extends KnockoutSubscribable, KnockoutObservableFunctions { + (): T; + (value: T): void; + peek(): T; valueHasMutated(): void; valueWillMutate(): void; From 4e1b3f73744a2fb28888c36dca0cab5766038de0 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Tue, 29 Oct 2013 18:09:19 +0400 Subject: [PATCH 3/4] knockout.rx: added toObservableWithReplyLatest --- knockout.rx/knockout.rx.d.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/knockout.rx/knockout.rx.d.ts b/knockout.rx/knockout.rx.d.ts index 4187afc280..44d3020c18 100644 --- a/knockout.rx/knockout.rx.d.ts +++ b/knockout.rx/knockout.rx.d.ts @@ -6,6 +6,14 @@ interface KnockoutSubscribableFunctions { toObservable(event: string): Rx.IObservable; } +interface KnockoutObservableFunctions { + toObservableWithReplyLatest(): Rx.IObservable; +} + +interface KnockoutComputedFunctions { + toObservableWithReplyLatest(): Rx.IObservable; +} + declare module Rx { interface IObservable { toKoSubscribable(): KnockoutSubscribable; From aca1b28add826d7441b8f271c69bdc7e5ce1e5c7 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Wed, 30 Oct 2013 12:22:00 +0400 Subject: [PATCH 4/4] Added description for the knockout.rx definition --- knockout.rx/knockout.rx.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/knockout.rx/knockout.rx.d.ts b/knockout.rx/knockout.rx.d.ts index 44d3020c18..4f44153d8c 100644 --- a/knockout.rx/knockout.rx.d.ts +++ b/knockout.rx/knockout.rx.d.ts @@ -1,3 +1,7 @@ +// Type definitions for knockout.rx 0.1 +// Project: https://github.com/Igorbek/knockout.rx +// Definitions by: Igor Oleinikov + /// ///