1.1.15 • Published 6 years ago

memee v1.1.15

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

Memee

Javascript package with 0 dependencies for memoizing and debouncing functions. Returning directly the result of function if it was called with the same arguments avoiding it's redundant work.

Installing

Using npm:

$ npm install memee

Using yarn:

$ yarn add memee

###Using memee

Import the package into the project

const memee = require("memee");

Always caching the function until we close the application.

let iterator = 0;
const increment = () => ++iterator;

const memoizedIncrement = memee(increment);

const firstCallResult = memoizedIncrement(); // 1
const secondCallResult = memoizedIncrement(); // 1

Maximum age for memoization

{maxAge} option Define the duration of memoization.

const increment = () => ++iterator;

const memoizedIncrement = memee(increment, { maxAge: 3000 });

const firstCallResult = memoizedIncrement(); // 1
const secondCallResult = memoizedIncrement(); // 1

// After 3seconds the cache is expired
const thirdCallResult = memoizedIncrement(); // 2

Memoizing promises

memee can also memoize promises.

let iterator = 0;

const incrementPromise = () => {
  ++iterator;
  return Promise.resolve(iterator);
}

const memoizedIncrementPromise = memee(incrementPromise);

// First call
memoizedIncrementPromise().then(resultA => {
  console.log(resultA); // 1

  // Second call
  memoizedIncrementPromise().then(resultB => {
    console.log(resultB); // 1
  });
});

Define debounced function without memoization

Delay the execution of function for a giving time.

let iterator = 0;
const increment = () => ++iterator;

// Callback holding increment result
const incrementResult = (result) => console.log(result); 

const delayedIncrement = memee(increment, {}, { debounced: true, wait: 2000, result: incrementResult });

// The callback is called with 2s delay: incrementResult(1)
delayedIncrement();

Define debounced and memoized function

let iterator = 0;
const increment = () => ++iterator;

// Callback holding increment result
const incrementResult = (result) => console.log(result); 

const memDelayedIncrement = memee(increment, { maxAge: 6000 },{ debounced: true, wait: 2000, result: incrementResult });

// The callback is called with 2s delay: incrementResult(1)
memDelayedIncrement();
// The callback is called with 2s delay: incrementResult(1)
memDelayedIncrement();

// After 6s the callback is called with 2s of delay: incrementResult(2)
setTimeout(memDelayedIncrement, 7000);

Versioning

We use SemVer for versioning.

Authors

  • Hicham NAIMI, for any suggestion you can contact me HERE

License

This project is licensed under the MIT License.

1.1.15

6 years ago

1.1.14

6 years ago

1.1.13

6 years ago

1.1.12

6 years ago

1.1.11

6 years ago

1.1.10

6 years ago

1.1.9

6 years ago

1.1.8

6 years ago

1.1.7

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago