1.0.4 • Published 1 year ago

@juancho-dev/memoizer v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

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

  • Crear memoizador
  • Crear tests
  • Agregar linter y prettier
  • Setear pipeline de github actions para publicar la libreria
  • Setear una herramienta para commits semanticos y changelog
  • Separar ramas dev y master
  • Verificar con promesas como argumentos o como respuesta el resultado de haber memoizado el callback
1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago