Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const container = createContainer();
container.register({
// System
app: asClass(Application, { lifetime: Lifetime.SINGLETON }),
server: asClass(Server, { lifetime: Lifetime.SINGLETON }),
router: asFunction(router, { lifetime: Lifetime.SINGLETON }),
logger: asFunction(logger, { lifetime: Lifetime.SINGLETON }),
config: asValue(config),
//Middlewares
loggerMiddleware: asFunction(loggerMiddleware, { lifetime: Lifetime.SINGLETON }),
containerMiddleware: asValue(scopePerRequest(container)),
errorHandler: asValue(config.production ? errorHandler : devErrorHandler),
swaggerMiddleware: asValue(swaggerMiddleware),
//Repositories
usersRepository: asClass(MongoUsersRepository, { lifetime: Lifetime.SINGLETON }),
//Database
database: asFunction(database),
UserModel: asValue(UserModel),
//Operations
createUser: asClass(CreateUser),
getAllUsers: asClass(GetAllUsers),
updateUser: asClass(UpdateUser),
getUserByUid: asClass(GetByUid),
})
.register({
router: asFunction(router).singleton(),
logger: asFunction(logger).singleton()
})
.register({
config: asValue(config)
});
// Middlewares
container
.register({
loggerMiddleware: asFunction(loggerMiddleware).singleton()
})
.register({
containerMiddleware: asValue(scopePerRequest(container)),
errorHandler: asValue(config.production ? errorHandler : devErrorHandler),
swaggerMiddleware: asValue([swaggerMiddleware])
});
// Repositories
container.register({
usersRepository: asClass(SequelizeUsersRepository).singleton()
});
// Database
container.register({
database: asValue(database),
UserModel: asValue(UserModel)
});
// Operations
get router() {
const router = Router();
router.use(inject('userSerializer'));
router.get('/', inject('getAllUsers'), this.index);
router.get('/:id', inject('getUser'), this.show);
router.post('/', inject('createUser'), this.create);
router.put('/:id', inject('updateUser'), this.update);
router.delete('/:id', inject('deleteUser'), this.delete);
return router;
},
get router() {
const router = Router();
router.use(inject('userSerializer'));
router.get('/', inject('getAllUsers'), this.index);
router.get('/:id', inject('getUser'), this.show);
router.post('/', inject('createUser'), this.create);
router.put('/:id', inject('updateUser'), this.update);
router.delete('/:id', inject('deleteUser'), this.delete);
return router;
},
get router() {
const router = Router();
router.use(inject('userSerializer'));
router.get('/', inject('getAllUsers'), this.index);
router.get('/:id', inject('getUser'), this.show);
router.post('/', inject('createUser'), this.create);
router.put('/:id', inject('updateUser'), this.update);
router.delete('/:id', inject('deleteUser'), this.delete);
return router;
},