Agregar traducción de list.js en src/database/redis/list.ts#57
Open
AnyaMarcanito wants to merge 22 commits intoUSB-CI3715:f24from
Open
Agregar traducción de list.js en src/database/redis/list.ts#57AnyaMarcanito wants to merge 22 commits intoUSB-CI3715:f24from
AnyaMarcanito wants to merge 22 commits intoUSB-CI3715:f24from
Conversation
…ist.ts + Agregado typeRoots en el tsconfig.json
…ara ciertos casos
… siendo cambios que localmente pasan el linter usando solo las excepciones permitidas: @typescript-eslint/no-unsafe-member-access y @typescript-eslint/no-unsafe-call
…lient.lPush is not a function durante la corrida de test
…a visualizar si se esta realizando la conexion con redis adecuadamente
…que hace que entre los logs se generen: Error initializing Redis client: Error: Redis is already connecting/connected
…ar mensajes de consola
…tar problemas al compilar el proyecto + Archivo list.js compilado
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.
Traducción a TypeScript
Elaborado por
Anya Marcano
Carnet: 19-10336
Issue asociado
#13 (fixes #13)
Cambios implementados
Este Pull Request tiene como proposito general agregar el archivo src/database/redis/list.ts producto de una traduccion realizada a src/database/redis/list.js para lo cual, se siguieron los siguientes pasos:
1. Creación del Archivo list.ts en src/database/redis/list.ts
Se creó un nuevo archivo el cual inicialmente fue una copia de list.js.
2. Importación de Módulos
Se importaron los módulos necesarios utilizando la sintaxis de ES6.
3. Definición de Interfaces
Se definieron tres interfaces distintas para manejar cada uno de los diferentes tipos presentes dentro del archivo:
Interface RedisModule
Esta primera interfaz llamada RedisModule, fue definida con la finalidad de poder tipar el objeto que contiene los métodos para manipular listas en Redis, donde los metodos considerados son:
Interface Redis
Una segunda interfaz llamada: Redis para manejar la conexión con el cliente Redis y poder definir las entradas y salidas de las funciones del mismo que son usadas dentro del archivo, las cuales son:
Interface batch
4. Exportación del Módulo
Se exportó una función que toma un objeto RedisModule y a este se le fueron agregando las distintas definiciones necesarias para manipular listas en Redis.
5. Implementación de Métodos
Se implementaron todos métodos para manipular listas en Redis que estaban originalmente en list.js, asegurando que cada método esté correctamente tipado y maneje errores adecuadamente.
listPrepend
Método que añade un elemento al inicio de la lista.
Parámetros:
Retorna una promesa que se resuelve cuando la operación se completa.
listAppend
Método que añade un elemento al final de la lista.
Parámetros:
Retorna una promesa que se resuelve cuando la operación se completa.
listRemoveLast
Método que elimina el último elemento de la lista.
Parámetro:
Retorna una promesa que se resuelve con el valor eliminado o null si la lista está vacía.
listRemoveAll
Método que elimina todos los elementos que coinciden con un valor dado.
Parámetros:
Retorna una promesa que se resuelve cuando la operación se completa.
listTrim
Método que recorta la lista a un rango específico.
Parámetros:
Retorna una promesa que se resuelve cuando la operación se completa.
getListRange
Método que obtiene un rango de elementos de la lista.
Parámetros:
Retorna una promesa que se resuelve con un array de valores del rango especificado.
listLength
Método que obtiene la longitud de la lista.
Parámetro:
Retorna una promesa que se resuelve con la longitud de la lista.
Pruebas realizadas
En cuanto a las pruebas localmente se ejecutaron tanto npm run lint como npm run test, de los cuales el primero finalizó sin inconvenientes.
Por otra parte al ejecutar el test tanto local como desde github no fueron encontrados errores dentro del archivo traducido en TS, ni en el compilado generado por este en JS. No obstante persiste la aparición de error:
Haciendo cierta investigación y en algunos foros de la comunidad se recomendaba aumentar el tiempo para el timeout, sin embargo, aún duplicándolo el error sigue generándose por lo que pareciera que la falla puede que esté relacionada a la estructura de los tests, en especial considerando que el resultado de la covertura, pese a fallar por un error de timeOut, se mantienen en porcentajes aceptables: