[go: up one dir, main page]

@juancho-dev/memoizer
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

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

Package Sidebar

Install

npm i @juancho-dev/memoizer

Weekly Downloads

1

Version

1.0.4

License

ISC

Unpacked Size

26.2 kB

Total Files

52

Last publish

Collaborators

  • juancho-dev