|
1 | | -const { createContainer, Lifetime } = require('awilix'); |
| 1 | +const { createContainer, asClass, asFunction, asValue } = require('awilix'); |
2 | 2 | const { scopePerRequest } = require('awilix-express'); |
3 | 3 |
|
4 | 4 | const config = require('../config'); |
@@ -28,50 +28,52 @@ const container = createContainer(); |
28 | 28 |
|
29 | 29 | // System |
30 | 30 | container |
31 | | - .registerClass({ |
32 | | - app: [Application, { lifetime: Lifetime.SINGLETON }], |
33 | | - server: [Server, { lifetime: Lifetime.SINGLETON }] |
| 31 | + .register({ |
| 32 | + app: asClass(Application).singleton(), |
| 33 | + server: asClass(Server).singleton() |
34 | 34 | }) |
35 | | - .registerFunction({ |
36 | | - router: [router, { lifetime: Lifetime.SINGLETON }], |
37 | | - logger: [logger, { lifetime: Lifetime.SINGLETON }] |
| 35 | + .register({ |
| 36 | + router: asFunction(router).singleton(), |
| 37 | + logger: asFunction(logger).singleton() |
38 | 38 | }) |
39 | | - .registerValue({ config }); |
| 39 | + .register({ |
| 40 | + config: asValue(config) |
| 41 | + }); |
40 | 42 |
|
41 | 43 | // Middlewares |
42 | 44 | container |
43 | | - .registerFunction({ |
44 | | - loggerMiddleware: [loggerMiddleware, { lifetime: Lifetime.SINGLETON }] |
| 45 | + .register({ |
| 46 | + loggerMiddleware: asFunction(loggerMiddleware).singleton() |
45 | 47 | }) |
46 | | - .registerValue({ |
47 | | - containerMiddleware: scopePerRequest(container), |
48 | | - errorHandler: config.production ? errorHandler : devErrorHandler, |
49 | | - swaggerMiddleware: [swaggerMiddleware] |
| 48 | + .register({ |
| 49 | + containerMiddleware: asValue(scopePerRequest(container)), |
| 50 | + errorHandler: asValue(config.production ? errorHandler : devErrorHandler), |
| 51 | + swaggerMiddleware: asValue([swaggerMiddleware]) |
50 | 52 | }); |
51 | 53 |
|
52 | 54 | // Repositories |
53 | | -container.registerClass({ |
54 | | - usersRepository: [SequelizeUsersRepository, { lifetime: Lifetime.SINGLETON }] |
| 55 | +container.register({ |
| 56 | + usersRepository: asClass(SequelizeUsersRepository).singleton() |
55 | 57 | }); |
56 | 58 |
|
57 | 59 | // Database |
58 | | -container.registerValue({ |
59 | | - database, |
60 | | - UserModel |
| 60 | +container.register({ |
| 61 | + database: asValue(database), |
| 62 | + UserModel: asValue(UserModel) |
61 | 63 | }); |
62 | 64 |
|
63 | 65 | // Operations |
64 | | -container.registerClass({ |
65 | | - createUser: CreateUser, |
66 | | - getAllUsers: GetAllUsers, |
67 | | - getUser: GetUser, |
68 | | - updateUser: UpdateUser, |
69 | | - deleteUser: DeleteUser |
| 66 | +container.register({ |
| 67 | + createUser: asClass(CreateUser), |
| 68 | + getAllUsers: asClass(GetAllUsers), |
| 69 | + getUser: asClass(GetUser), |
| 70 | + updateUser: asClass(UpdateUser), |
| 71 | + deleteUser: asClass(DeleteUser) |
70 | 72 | }); |
71 | 73 |
|
72 | 74 | // Serializers |
73 | | -container.registerValue({ |
74 | | - userSerializer: UserSerializer |
| 75 | +container.register({ |
| 76 | + userSerializer: asValue(UserSerializer) |
75 | 77 | }); |
76 | 78 |
|
77 | 79 | module.exports = container; |
0 commit comments