chore(repository): include configuration proposals - #1
Open
ddialar wants to merge 1 commit into
Open
Conversation
Author
|
Podría haber añadido la configuración de Husky, con la que también suelo trabajar y tenerla configurada por defecto para mis servicios, pero entiendo que como esta herramienta puede llegar a tener conflictos con determinadas configuraciones de CI/CD, pues no lo he metido. Si aún así te interesa que lo meta, dímelo y creo otra PR. Saludos. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
He añadido algunas propuestas de configuración que yo suelo emplear en mis repos.
Configuraciones adicionales al
tsconfig.jsonHe añadido estas dos propiedades de configuración para TypeScript:
resolveJsonModulePermitirá importar contenido de archivos JSON dentro de archivos TypeScript.importsNotUsedAsValuesEn ocasiones, tenemos archivos en los que hemos definido tipos/interfaces junto con funciones pero a la hora de importar, en muchas ocasiones sólo importamos dichos tipos/interfaces y no los métodos. Con esta propiedad, nos obliga a escribirimport type { myType } from '@myModule'. Esto le sirve al compilador de TypeScript para sólo traerse la definición del tipo/interfaz al archivo de destino. Si no lo pusiéramos, se traería todo el contenido del módulo, incluyendo los métodos no utilizados. ¿Y qué pasa con el tree shacking? Pues que se aplica a JavaScript, no al proceso de compilación de TypeScript. De ahí la necesidad de usar este tipo de configuraciones.Rutas relativas para TypeScript
Creando el archivo
tsconfig.paths.jsonse pueden definir rutas relativas para ser usadas en el código.Este tipo de rutas proporciona un mejor mantenimiento del código así como refactorizaciones más sencillas, dado que al mover archivos de lugar, sus importaciones no se ven afectadas y en el caso de que haya que actualizar la importación del archivo desplazado, sólo hay que modificar la nueva ruta en el
tsconfig.paths.json, no en todos los archivos afectados.Para que este archivo tenga efecto, es necesario meterlo en el
tsconfig.json, mediante la propiedadextedns.Configuración de Jest para que funcione con rutas relativas
Para que Jest pueda funcionar con las rutas relativas empleadas en el
tsconfig.json, tenemos que definir cada path relativo dentro del bloquemoduleNameMapperdel archivo de configuración de Jest.Para que esto pueda realizarse de manera automática, he añadido una serie de configuraciones en el archivo
jest.config.ts. Finalmente, para que esto tenga efecto, era necesario renombrar la extensión del archivo dejsats.Configuración de Jest para que funcione con variables de entorno
Lo más habitual en estos casos es trabajar con
dotenv. En este caso, la librería está instalada como librería de desarrollo porque en mi caso, las variables de entorno se las suelo pasar al servicio en el momento de ejecutarlo.De este modo, he creado el archivo
jest.dotenv.config.tsy configurado la propiedadglobalSetupen el archivojest.config.ts. Así, cada vez que se ejecute Jest, se cargarán las variables de entorno definidas en el archivo.env.test.Scripts en el package.json
He añadido los siguientes scripts:
lint:lockfilePermite analizar la estructura del archivopackage.lock.jsonpara mejorar la seguridad y evitar posibles problemas por inyección de dependencias desde repositorios no fiables.depsEjecuta un análisis de las dependencias del repositorio en busca de posibles actualizaciones o amenazas conocidas.release:bug,release:featureyrelease:breaking_changePermiten actualizar automáticamente las versiones del repositorio.