Skip to content

Commit aa700fe

Browse files
updated examples
1 parent dd51013 commit aa700fe

6 files changed

+61
-35
lines changed

examples/javascript/use-factory-with-injections.js

+14-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { Container, Injectable } from 'container-ioc';
22

3-
const container = new Container();
3+
const TService = Symbol('IService');
4+
5+
const TManager = Symbol('IManager');
46

5-
@Injectable(['IUserFactory'])
7+
@Injectable([TService])
68
class App {
79
constructor(service) {
810
this.service = service;
@@ -12,15 +14,20 @@ class App {
1214
@Injectable()
1315
class Service {}
1416

17+
@Injectable()
18+
class Manager {}
19+
20+
const container = new Container();
21+
1522
container.register([
1623
{ token: App, useClass: App },
17-
{ token: 'IService', useClass: Service },
24+
{ token: TManager, useClass: Manager },
1825
{
19-
token: 'IUseFactory',
20-
useFactory: (service) => {
21-
return service;
26+
token: TService,
27+
useFactory: (manager) => {
28+
return manager;
2229
},
23-
inject: ['IService']
30+
inject: ['IConfig']
2431
}
2532
]);
2633

examples/javascript/use-factory.js

+10-8
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
11
import { Container, Injectable } from 'container-ioc';
22

3-
const container = new Container();
3+
const TService = Symbol('IService');
44

5-
@Injectable(['IUseFactory'])
5+
@Injectable([TService])
66
class App {
7-
constructor(service) {
8-
this.service = service;
9-
}
7+
constructor(service) {}
108
}
119

12-
class Service {}
10+
const container = new Container();
1311

1412
container.register([
1513
{ token: App, useClass: App },
1614
{
17-
token: 'IUseFactory',
15+
token: TService,
1816
useFactory: () => {
19-
return new Service();
17+
return {
18+
serve () {
19+
// do stuff
20+
}
21+
};
2022
}
2123
}
2224
]);
+6-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
import { Container, Injectable } from 'container-ioc';
22

3-
const container = new Container();
4-
53
interface IService {
64
[key: string]: any;
75
}
86

9-
@Injectable(['IService'])
7+
const TSerivice = Symbol('IService');
8+
9+
@Injectable([TSerivice])
1010
class App {
1111
constructor(private service: IService) {}
1212
}
1313

14+
const container = new Container();
15+
1416
container.register([
1517
{ token: App, useClass: App },
16-
{ token: 'IService', useValue: {}}
18+
{ token: TSerivice, useValue: {}}
1719
]);
1820

1921
const app = container.resolve(App);

examples/typescript/life-time-control.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { Container, Injectable, LifeTime } from 'container-ioc';
22

3-
const container = new Container();
4-
53
@Injectable()
64
class A {}
75

6+
const container = new Container();
7+
88
container.register({ token: A, useClass: A, lifeTime: LifeTime.PerRequest });
99

1010
const instance1 = container.resolve(A);

examples/typescript/use-factory-with-injections.ts

+22-9
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,41 @@
1-
import { Container, Injectable, Inject } from 'container-ioc';
1+
/* tslint:disable: no-unused-expression max-classes-per-file*/
22

3-
const container = new Container();
3+
import { Container, Injectable, Inject } from 'container-ioc';
44

55
interface IService {
66
[key: string]: any;
77
}
88

9+
interface IManager {
10+
[key: string]: any;
11+
}
12+
13+
const TService = Symbol('IService');
14+
15+
const TManager = Symbol('IManager');
16+
917
@Injectable()
1018
class App {
11-
constructor(@Inject('IUseFactory') private service: IService) {}
19+
constructor(@Inject(TService) private service: IService) {}
1220
}
1321

1422
@Injectable()
15-
class Service {}
23+
class Service implements IService {}
24+
25+
@Injectable()
26+
class Manager implements IManager {}
27+
28+
const container = new Container();
1629

1730
container.register([
1831
{ token: App, useClass: App },
19-
{ token: 'IService', useClass: Service },
32+
{ token: TManager, useClass: Manager },
2033
{
21-
token: 'IUseFactory',
22-
useFactory: (service: IService) => {
23-
return service;
34+
token: TService,
35+
useFactory: (manager: IManager) => {
36+
return manager;
2437
},
25-
inject: ['IService']
38+
inject: [TManager]
2639
}
2740
]);
2841

examples/typescript/use-factory.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,25 @@ import { Container, Injectable, Inject } from 'container-ioc';
22

33
/* tslint:disable: no-unused-expression max-classes-per-file*/
44

5-
const container = new Container();
6-
75
interface IService {
86
[key: string]: any;
97
}
108

9+
const TService = Symbol('IService');
10+
1111
@Injectable()
1212
class App {
13-
constructor(@Inject('IUseFactory') private service: IService) {}
13+
constructor(@Inject(TService) private service: IService) {}
1414
}
1515

16-
class Service {}
16+
class Service implements IService {}
17+
18+
const container = new Container();
1719

1820
container.register([
1921
{ token: App, useClass: App },
2022
{
21-
token: 'IUseFactory',
23+
token: TService,
2224
useFactory: () => {
2325
return new Service();
2426
}

0 commit comments

Comments
 (0)