ci-validation
Version:
🇺🇾 Complete TypeScript/JavaScript library for validating Uruguayan CI (Cédula de Identidad) with official algorithm and government service integration
62 lines • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DependencyContainer = void 0;
const CiController_1 = require("../controllers/CiController");
const CiService_1 = require("../services/CiService");
const CiValidator_1 = require("../validators/CiValidator");
/**
* Contenedor de inyección de dependencias simple
* Implementa el principio de Dependency Inversion
*/
class DependencyContainer {
constructor() {
// Crear instancias de las dependencias
this.ciValidator = new CiValidator_1.UruguayanCiValidator();
this.ciService = new CiService_1.LoteriaUyCiService();
// Inyectar dependencias en el controlador
this.ciController = new CiController_1.CiController(this.ciValidator, this.ciService);
}
/**
* Obtiene la instancia singleton del contenedor
*/
static getInstance() {
if (!DependencyContainer.instance) {
DependencyContainer.instance = new DependencyContainer();
}
return DependencyContainer.instance;
}
/**
* Obtiene el validador de cédulas
*/
getCiValidator() {
return this.ciValidator;
}
/**
* Obtiene el servicio de consulta de cédulas
*/
getCiService() {
return this.ciService;
}
/**
* Obtiene el controlador de cédulas
*/
getCiController() {
return this.ciController;
}
/**
* Permite reemplazar el validador (útil para testing)
*/
setCiValidator(validator) {
this.ciValidator = validator;
this.ciController = new CiController_1.CiController(this.ciValidator, this.ciService);
}
/**
* Permite reemplazar el servicio (útil para testing)
*/
setCiService(service) {
this.ciService = service;
this.ciController = new CiController_1.CiController(this.ciValidator, this.ciService);
}
}
exports.DependencyContainer = DependencyContainer;
//# sourceMappingURL=dependencyContainer.js.map