From 35f2f6c2ee702b13fbeda6c3f0332beb195e424b Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Mon, 28 Oct 2013 23:29:01 +0400 Subject: [PATCH 1/7] 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 000000000..674e9bb6a --- /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 000000000..4187afc28 --- /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/7] 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 63f993894..c3d632836 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/7] 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 4187afc28..44d3020c1 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/7] 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 44d3020c1..4f44153d8 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 + /// /// From a26d69eed43279543e8858002bd35122276f6319 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Wed, 30 Oct 2013 12:28:40 +0400 Subject: [PATCH 5/7] knockout.rx: Added TS compiler parameters for tests --- knockout.rx/knockout.rx-tests.tscparams | 1 + 1 file changed, 1 insertion(+) create mode 100644 knockout.rx/knockout.rx-tests.tscparams diff --git a/knockout.rx/knockout.rx-tests.tscparams b/knockout.rx/knockout.rx-tests.tscparams new file mode 100644 index 000000000..e16c76dff --- /dev/null +++ b/knockout.rx/knockout.rx-tests.tscparams @@ -0,0 +1 @@ +"" From f713ad0f482489a893e130c098f8e28f0a34aa33 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Wed, 30 Oct 2013 12:57:39 +0400 Subject: [PATCH 6/7] knockout.rx: Added TS compiler parameters for typing --- knockout.rx/knockout.rx.d.ts.tscparams | 1 + 1 file changed, 1 insertion(+) create mode 100644 knockout.rx/knockout.rx.d.ts.tscparams diff --git a/knockout.rx/knockout.rx.d.ts.tscparams b/knockout.rx/knockout.rx.d.ts.tscparams new file mode 100644 index 000000000..e16c76dff --- /dev/null +++ b/knockout.rx/knockout.rx.d.ts.tscparams @@ -0,0 +1 @@ +"" From 5ffbf0e2e7483d483378dcaf42fae2d44d425cdc Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Wed, 30 Oct 2013 13:33:31 +0400 Subject: [PATCH 7/7] knockout.rx: fixed TS compiler parameters filename --- ...knockout.rx-tests.tscparams => knockout.rx-tests.ts.tscparams} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename knockout.rx/{knockout.rx-tests.tscparams => knockout.rx-tests.ts.tscparams} (100%) diff --git a/knockout.rx/knockout.rx-tests.tscparams b/knockout.rx/knockout.rx-tests.ts.tscparams similarity index 100% rename from knockout.rx/knockout.rx-tests.tscparams rename to knockout.rx/knockout.rx-tests.ts.tscparams