Estoy usando Awilix en mi código para Inyección de Dependencia y tengo esta clase de Usuario.
class User { constructor(opts){ this.validator = opts.validator } async validateUsername(username) { this.validator.username(username) } async validatePassword(password) { this.validator.password(password) } } module.exports = User
Envase:
const User = require('../../user/User') const Validator = require('../../user/Validator') const awilix = require('awilix') const container = awilix.createContainer({ injectionMode: awilix.InjectionMode.PROXY }) container.register({ user: awilix.asClass(User), validator: awilix.asClass(Validator), }) module.exports = container
Lo que quiero hacer es agregar "nombre de usuario" y "contraseña" en el constructor, porque esas son propiedades de la clase "Usuario". Entonces, se verá así:
class User { constructor(opts, username, password){ this.validator = opts.validator this.username = username this.password = password } async validateUsername() { this.validator.username(this.username) } async validatePassword() { this.validator.password(this.password) } } module.exports = User
No puedo entender cómo pasar argumentos a través del constructor con Awilix.