@juancho-dev/memoizer
v1.0.4
Published
A simple and ligth memoizer helper function
Maintainers
Readme
Memoizer
Motivo
Memoizer es un modulo simple de codigo para memoizar funciones. El motivo principal de este proyecto fue publicar un paquete en npm y setear una configuracion basica de github actions para simular un entorno de desarrollo agil y continuo
Descripcion
Memoizer es un modulo que recibe un callback, del cual en base a sus argumentos memoizara el resultado para no ejecutar el callback una segunda vez.
Por ende los callbacks que se pasen al Memoizer, deben ser funciones puras, sin side effects y que en base a una misma entrada proporcione una misma salida.
Puedes memoizar valores primitivos de la siguiente forma:
import { memoizer } from '@juancho-dev/memoizer'
const sum = (a, b) => a + b
const memoizedSUm = memoizer(sum)
// Executes callback
memoizedSum(5, 5)
// Returns value from cache - does not executes callback
memoizedSum(5, 5)Puedes memoizar un callback que recibe objetos como parametros de la siguiente forma:
import { memoizer } from '@juancho-dev/memoizer'
const getNameAndAge = (person) => `${p.name} ${p.age}`
const memoizedNameAndAge = memoizer(sum)
// Executes callback
memoizedNameAndAge({name: "John", age: 20})
// Returns value from cache - does not executes callback
memoizedNameAndAge({name: "John", age: 20})Work in progress
TODO
- [x] Crear memoizador
- [x] Crear tests
- [x] Agregar linter y prettier
- [x] Setear pipeline de github actions para publicar la libreria
- [ ] Setear una herramienta para commits semanticos y changelog
- [x] Separar ramas dev y master
- [ ] Verificar con promesas como argumentos o como respuesta el resultado de haber memoizado el callback
