From 20d6106860c9a66616f43da35a45ade4c24672d9 Mon Sep 17 00:00:00 2001 From: remojansen Date: Sat, 18 Apr 2015 01:00:25 +0100 Subject: [PATCH 1/5] added inversify type definitions --- inversify/interfaces.d.ts | 13 +++++++++++++ inversify/inversify.d.ts | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 inversify/interfaces.d.ts create mode 100644 inversify/inversify.d.ts diff --git a/inversify/interfaces.d.ts b/inversify/interfaces.d.ts new file mode 100644 index 000000000..eeaa14faf --- /dev/null +++ b/inversify/interfaces.d.ts @@ -0,0 +1,13 @@ +interface TypeBindingInterface { + runtimeIdentifier : string; + implementationType : { new(): TServiceType ;}; + cache : TServiceType; + scope : number; // TypeBindingScopeEnum +} + +interface KernelInterface { + bind(typeBinding : TypeBindingInterface) : void; + unbind(runtimeIdentifier : string) : void; + unbindAll() : void; + resolve(runtimeIdentifier : string) : TImplementationType; +} diff --git a/inversify/inversify.d.ts b/inversify/inversify.d.ts new file mode 100644 index 000000000..9c0405298 --- /dev/null +++ b/inversify/inversify.d.ts @@ -0,0 +1,37 @@ +/// + +declare enum TypeBindingScopeEnum { + Transient = 0, + Singleton = 1, +} + +declare class TypeBinding implements TypeBindingInterface { + runtimeIdentifier: string; + implementationType: { + new (): TServiceType; + }; + cache: TServiceType; + scope: TypeBindingScopeEnum; + constructor(runtimeIdentifier: string, implementationType: { + new (...args: any[]): TServiceType; + }, scopeType?: TypeBindingScopeEnum); +} + +declare class Kernel implements KernelInterface { + private _bindings; + bind(typeBinding: TypeBindingInterface): void; + unbind(runtimeIdentifier: string): void; + unbindAll(): void; + resolve(runtimeIdentifier: string): TImplementationType; + private _validateBinding(typeBinding); + private _getConstructorArguments(func); + private _injectDependencies(func); + private _construct(constr, args); + constructor(); +} + +declare var inversify: { + Kernel: typeof Kernel; + TypeBindingScopeEnum: typeof TypeBindingScopeEnum; + TypeBinding: typeof TypeBinding; +}; From a82f4781a17d327b7c314244c4b75dc085856029 Mon Sep 17 00:00:00 2001 From: remojansen Date: Sat, 18 Apr 2015 11:17:20 +0100 Subject: [PATCH 2/5] added header and test --- inversify/interfaces.d.ts | 13 ------- inversify/inversify-test.ts | 75 +++++++++++++++++++++++++++++++++++++ inversify/inversify.d.ts | 69 +++++++++++++++++----------------- 3 files changed, 109 insertions(+), 48 deletions(-) delete mode 100644 inversify/interfaces.d.ts create mode 100644 inversify/inversify-test.ts diff --git a/inversify/interfaces.d.ts b/inversify/interfaces.d.ts deleted file mode 100644 index eeaa14faf..000000000 --- a/inversify/interfaces.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -interface TypeBindingInterface { - runtimeIdentifier : string; - implementationType : { new(): TServiceType ;}; - cache : TServiceType; - scope : number; // TypeBindingScopeEnum -} - -interface KernelInterface { - bind(typeBinding : TypeBindingInterface) : void; - unbind(runtimeIdentifier : string) : void; - unbindAll() : void; - resolve(runtimeIdentifier : string) : TImplementationType; -} diff --git a/inversify/inversify-test.ts b/inversify/inversify-test.ts new file mode 100644 index 000000000..ffd3394f8 --- /dev/null +++ b/inversify/inversify-test.ts @@ -0,0 +1,75 @@ +/// + +interface FooInterface { + name : string; + greet() : string; +} + +interface BarInterface { + name : string; + greet() : string; +} + +interface FooBarInterface { + foo : FooInterface; + bar : BarInterface; + greet() : string; +} + +export class Foo implements FooInterface { + public name : string; + constructor() { + this.name = "foo"; + } + public greet() : string { + return this.name; + } +} + +class Bar implements BarInterface { + public name : string; + constructor() { + this.name = "bar"; + } + public greet() : string { + return this.name; + } +} + +class FooBar implements FooBarInterface { + public foo : FooInterface; + public bar : BarInterface; + constructor(FooInterface : FooInterface, BarInterface : BarInterface) { + this.foo = FooInterface; + this.bar = BarInterface; + } + public greet() : string{ + return this.foo.greet() + this.bar.greet(); + } +} + +// Kernel +var kernel = new inversify.Kernel(); + +// Identifiers +var fooRuntimeIdentifier = "FooInterface"; +var barRuntimeIdentifier = "BarInterface"; +var fooBarRuntimeIdentifier = "FooBarInterface"; + +// Bindings +var fooBinding = new inversify.TypeBinding(fooRuntimeIdentifier, Foo); +var barBinding = new inversify.TypeBinding(barRuntimeIdentifier, Bar); +var fooBarBinding = new inversify.TypeBinding(fooBarRuntimeIdentifier, FooBar); + +kernel.bind(fooBinding); +kernel.bind(barBinding); +kernel.bind(fooBarBinding); + +// Resolve +var foo = kernel.resolve(fooRuntimeIdentifier); +var bar = kernel.resolve(barRuntimeIdentifier); +var fooBar = kernel.resolve(fooBarRuntimeIdentifier); + +// Unbind +kernel.unbind(fooRuntimeIdentifier); +kernel.unbindAll(); diff --git a/inversify/inversify.d.ts b/inversify/inversify.d.ts index 9c0405298..45f898926 100644 --- a/inversify/inversify.d.ts +++ b/inversify/inversify.d.ts @@ -1,37 +1,36 @@ -/// +// Type definitions for inversify 1.0.0 +// Project: https://github.com/inversify/InversifyJS +// Definitions by: inversify +// Definitions: https://github.com/borisyankov/DefinitelyTyped -declare enum TypeBindingScopeEnum { - Transient = 0, - Singleton = 1, +declare module inversify { + enum TypeBindingScopeEnum { + Transient = 0, + Singleton = 1, + } + + class TypeBinding implements TypeBindingInterface { + runtimeIdentifier: string; + implementationType: { + new (): TServiceType; + }; + cache: TServiceType; + scope: TypeBindingScopeEnum; + constructor(runtimeIdentifier: string, implementationType: { + new (...args: any[]): TServiceType; + }, scopeType?: TypeBindingScopeEnum); + } + + class Kernel implements KernelInterface { + private _bindings; + bind(typeBinding: TypeBindingInterface): void; + unbind(runtimeIdentifier: string): void; + unbindAll(): void; + resolve(runtimeIdentifier: string): TImplementationType; + private _validateBinding(typeBinding); + private _getConstructorArguments(func); + private _injectDependencies(func); + private _construct(constr, args); + constructor(); + } } - -declare class TypeBinding implements TypeBindingInterface { - runtimeIdentifier: string; - implementationType: { - new (): TServiceType; - }; - cache: TServiceType; - scope: TypeBindingScopeEnum; - constructor(runtimeIdentifier: string, implementationType: { - new (...args: any[]): TServiceType; - }, scopeType?: TypeBindingScopeEnum); -} - -declare class Kernel implements KernelInterface { - private _bindings; - bind(typeBinding: TypeBindingInterface): void; - unbind(runtimeIdentifier: string): void; - unbindAll(): void; - resolve(runtimeIdentifier: string): TImplementationType; - private _validateBinding(typeBinding); - private _getConstructorArguments(func); - private _injectDependencies(func); - private _construct(constr, args); - constructor(); -} - -declare var inversify: { - Kernel: typeof Kernel; - TypeBindingScopeEnum: typeof TypeBindingScopeEnum; - TypeBinding: typeof TypeBinding; -}; From 31bfa9579b58e72f03941d4dbc9ebc6076139990 Mon Sep 17 00:00:00 2001 From: remojansen Date: Sat, 18 Apr 2015 11:21:01 +0100 Subject: [PATCH 3/5] added interfaces --- inversify/inversify.d.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/inversify/inversify.d.ts b/inversify/inversify.d.ts index 45f898926..f3c924e82 100644 --- a/inversify/inversify.d.ts +++ b/inversify/inversify.d.ts @@ -4,6 +4,21 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module inversify { + + interface TypeBindingInterface { + runtimeIdentifier : string; + implementationType : { new(): TServiceType ;}; + cache : TServiceType; + scope : number; // TypeBindingScopeEnum + } + + interface KernelInterface { + bind(typeBinding : TypeBindingInterface) : void; + unbind(runtimeIdentifier : string) : void; + unbindAll() : void; + resolve(runtimeIdentifier : string) : TImplementationType; + } + enum TypeBindingScopeEnum { Transient = 0, Singleton = 1, From e987bf6a71e8d1fc3857f71c084922d57251bdc1 Mon Sep 17 00:00:00 2001 From: remojansen Date: Sat, 18 Apr 2015 19:59:02 +0100 Subject: [PATCH 4/5] renamed: inversify/inversify-test.ts -> inversify/inversify-tests.ts --- inversify/{inversify-test.ts => inversify-tests.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename inversify/{inversify-test.ts => inversify-tests.ts} (100%) diff --git a/inversify/inversify-test.ts b/inversify/inversify-tests.ts similarity index 100% rename from inversify/inversify-test.ts rename to inversify/inversify-tests.ts From 48b5b265bc7c4e1c3bfb25aa06d1e4208e6172f6 Mon Sep 17 00:00:00 2001 From: remojansen Date: Sat, 18 Apr 2015 20:10:47 +0100 Subject: [PATCH 5/5] removed not necesary export and fixed a naming issue --- inversify/inversify-tests.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inversify/inversify-tests.ts b/inversify/inversify-tests.ts index ffd3394f8..46b5cab97 100644 --- a/inversify/inversify-tests.ts +++ b/inversify/inversify-tests.ts @@ -16,7 +16,7 @@ interface FooBarInterface { greet() : string; } -export class Foo implements FooInterface { +class Foo implements FooInterface { public name : string; constructor() { this.name = "foo"; @@ -67,8 +67,8 @@ kernel.bind(fooBarBinding); // Resolve var foo = kernel.resolve(fooRuntimeIdentifier); -var bar = kernel.resolve(barRuntimeIdentifier); -var fooBar = kernel.resolve(fooBarRuntimeIdentifier); +var bar = kernel.resolve(barRuntimeIdentifier); +var fooBar = kernel.resolve(fooBarRuntimeIdentifier); // Unbind kernel.unbind(fooRuntimeIdentifier);