UNPKG

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
"use strict"; 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