JSPM

@juancho-dev/memoizer

1.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q26279F
  • License ISC

A simple and ligth memoizer helper function

Package Exports

  • @juancho-dev/memoizer

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

  • 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