Skip to content

Commit ac23a57

Browse files
Merge pull request #104 from Tolowe/#58-provider-refactor
feat: changed provider interface to merged interfaces. fixed mispell …
2 parents 327e534 + c39a6d5 commit ac23a57

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

src/lib/container.ts

+8-19
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,8 @@ export class Container implements IContainer {
2525
}
2626

2727
public register(provider: RegistrationProvider|RegistrationProvider[]): void {
28-
provider = this.nornalizeProvider(provider);
29-
30-
if (Array.isArray(provider)) {
31-
this.registerAll(<RegistrationProvider[]> provider);
32-
} else {
33-
provider = this.nornalizeProvider(provider);
34-
this.registerOne(<IProvider> provider);
35-
}
28+
const normalizedProvider = this.normalizeProvider(provider);
29+
this.registerAll(normalizedProvider);
3630
}
3731

3832
public resolve(token: ProviderToken): IInjectionInstance {
@@ -77,11 +71,11 @@ export class Container implements IContainer {
7771
return instance;
7872
}
7973

80-
private registerAll(providers: RegistrationProvider[]): void {
74+
private registerAll(providers: IProvider[]): void {
8175
providers.forEach((p: IProvider) => this.registerOne(p));
8276
}
8377

84-
private registerOne(provider: IProvider) {
78+
private registerOne(provider: IProvider): void {
8579
const registryData: IRegistryData = new RegistryData();
8680

8781
if (provider.useValue) {
@@ -147,15 +141,10 @@ export class Container implements IContainer {
147141
}
148142
}
149143

150-
private nornalizeProvider(provider: RegistrationProvider|RegistrationProvider[]): IProvider {
151-
let normalizedProvider: any;
152-
153-
if (Array.isArray(provider)) {
154-
normalizedProvider = provider.map<IProvider>((p: IProvider|IConstructor) => this.normalizeSingleProvider(p));
155-
} else {
156-
normalizedProvider = this.normalizeSingleProvider(provider);
157-
}
158-
return normalizedProvider;
144+
private normalizeProvider(provider: RegistrationProvider|RegistrationProvider[]): IProvider[] {
145+
return Array.isArray(provider)
146+
? provider.map(p => this.normalizeSingleProvider(p))
147+
: [ this.normalizeSingleProvider(provider) ];
159148
}
160149

161150
private normalizeSingleProvider(provider: RegistrationProvider): IProvider {

src/lib/interfaces.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,20 @@ export enum LifeTime {
99

1010
export interface IProvider {
1111
token: ProviderToken;
12-
useClass?: IConstructor;
12+
lifeTime?: LifeTime;
13+
}
14+
15+
export interface IProvider {
1316
useValue?: any;
17+
}
18+
19+
export interface IProvider {
20+
useClass?: IConstructor;
21+
}
22+
23+
export interface IProvider {
1424
useFactory?: any;
15-
inject?: ProviderToken[];
16-
lifeTime?: LifeTime;
25+
inject?: ProviderToken[];
1726
}
1827

1928
export interface IInjectionMd {

0 commit comments

Comments
 (0)