{"id":31262744,"url":"https://github.com/xsismadn3ss/angular-shared-dtos","last_synced_at":"2025-09-23T11:53:09.935Z","repository":{"id":313142914,"uuid":"1050198404","full_name":"xsismadn3ss/angular-shared-dtos","owner":"xsismadn3ss","description":"Librería de Angular con DTOs públicos y servicios para reutilizar en proyectos de angular. El objetivo de este proyecto es compartir con más equipos los esquemas y servicios para poder integrarlos en sus proyectos y comunicarse con los microservicios","archived":false,"fork":false,"pushed_at":"2025-09-06T07:26:59.000Z","size":122,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-12T00:48:37.677Z","etag":null,"topics":["angular","library","npm","reusable"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@xsismadn3ss/shared-dtos","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xsismadn3ss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-04T05:06:24.000Z","updated_at":"2025-09-06T07:27:02.000Z","dependencies_parsed_at":"2025-09-04T07:07:12.168Z","dependency_job_id":"dca4019d-111d-4a21-9d58-ab21870453a2","html_url":"https://github.com/xsismadn3ss/angular-shared-dtos","commit_stats":null,"previous_names":["xsismadn3ss/angular-shared-dtos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xsismadn3ss/angular-shared-dtos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsismadn3ss%2Fangular-shared-dtos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsismadn3ss%2Fangular-shared-dtos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsismadn3ss%2Fangular-shared-dtos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsismadn3ss%2Fangular-shared-dtos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xsismadn3ss","download_url":"https://codeload.github.com/xsismadn3ss/angular-shared-dtos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xsismadn3ss%2Fangular-shared-dtos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276570672,"owners_count":25665900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","library","npm","reusable"],"created_at":"2025-09-23T11:53:08.583Z","updated_at":"2025-09-23T11:53:09.927Z","avatar_url":"https://github.com/xsismadn3ss.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shared-dtos\n\nLibrería de DTOs y utilidades compartidas para proyectos Angular. Incluye:\n\n- DTOs comunes (MessageDto, BaseDto) y de autenticación (UserDto, LoginDto, LoginResponseDto). 🗒️\n- Utilidades de validación basadas en class-validator/class-transformer (validateDto, validateAndBuildDto). ⬆️\n- Servicios públicos para utilizar en proyectos de angular *(se requiere\nconfigurar URL al que van a realizar peticiones los servicios)* 🚀\n## Instalación\n\nAsegúrate de tener `@angular/core`, `@angular/common`, `class-validator` y `class-transformer` en tu proyecto (se declaran como peerDependencies).\n\n```bash\nnpm install @xsismadn3ss/shared-dtos class-validator class-transformer\n```\n\n## Uso rápido\n\n### Crear un DTO y validar esquema\nEsta librería utiliza ``class-validator`` para validar el esquema de los DTO.\nUsa las utilidades de esta librería para hacer validaciones.\n\n```ts\nimport {LoginDto} from \"@xsismaddn3ss/shared-dtos\";\n\n// datos de formulario\nconst data = {\n  username: \"\u003cUSERNAME\u003e\",\n  password: \"\u003cPASSWORD\u003e\"\n}\n\n// el método create valida automatiacmente el esquema del DTO\nconst loginDto = new LoginDto.create(data)\n```\n\n### Configurar servicios\nEn esta librería puedes encontrar servicios públicos para utilizarlos en tus\nrepositorios. Lo único que se debe hacer es indicar la URL que usara el servicio\npara realizar las peticiones a la URL especificada.\n\nEn el archivo ``app.config.ts`` del proyecto de Angular agrega la siguiente\nconfiguración.\n````ts\nimport {ApplicationConfig, inject, provideZoneChangeDetection} from '@angular/core';\nimport {AuthService} from '@xsismadn3ss/shared-dtos';\n\nexport const appConfig: ApplicationConfig = {\n  providers: [\n    /*\n    other providers here\n     */\n    //--------------------\n    \n    // configuración del servicio importado\n    {\n      provide: AuthService,\n      useFactory: () =\u003e {\n        const http = inject(HttpClient);\n        // URL del servicio\n        const baseUrl = '\u003cAUTH_SERVICE_URL\u003e';\n        \n        // agregar URL al crear la instancia del servicio\n        return new AuthService(baseUrl);\n      }\n    }\n  ]\n};\n````\n\n### Utilizar servicios\nUna vez que ya se han configurado las variables necesarias para utilizar un \nservicio ya se pueden importar en componentes e inyectar como dependencias.\n\n````ts\nimport {AuthService} from '@xsismadn3ss/shared-dtos'\n\n@Component({\n   selector: 'app-login',\n   template: \"...\",\n})\nexport class LoginComponent {\n\n constructor(private readonly auth: AuthService){}\n\n//...\n}\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxsismadn3ss%2Fangular-shared-dtos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxsismadn3ss%2Fangular-shared-dtos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxsismadn3ss%2Fangular-shared-dtos/lists"}