
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
@bigcommerce/memoize
Advanced tools
This library can be used to memoize the result of a pure function.
Unlike the default memoize function provided by Lodash, it can be applied to functions that accept multiple non-primitive arguments. It can also be configured to expire its cache after certain number of unique calls. By default, it compares object-based arguments shallowly; but it can be configured to compare arguments strictly or deeply depending on your usage requirement.
You can install this library using npm.
npm install --save @bigcommerce/memoize
To memoize a function:
function fn(a, b) {
return { a, b };
}
const memoizedFn = memoize(fn);
const result = memoizedFn({ message: 'hello' }, { message: 'world' });
const result2 = memoizedFn({ message: 'hello' }, { message: 'world' });
expect(result).toBe(result2);
To set a limit on the cache size:
function fn(a, b) {
return { a, b };
}
const memoizedFn = memoize(fn, { maxSize: 1 });
const result = memoizedFn({ message: 'hello' }, { message: 'world' });
// This call will expire the cache of the previous call because it is called with a different set of arguments
const result2 = memoizedFn({ message: 'hello' }, { message: 'foobar' });
const result3 = memoizedFn({ message: 'hello' }, { message: 'world' });
expect(result3).not.toBe(result);
There is a convenience method for setting the cache size to one:
const memoizedFn = memoizeOne(fn);
To use a different argument comparison function:
const memoizedFn = memoize(fn, {
isEqual: (a, b) => a === b,
});
To release:
npm run release
To see other available commands:
npm run
MIT
FAQs
A JavaScript library for memoizing the result of a pure function
The npm package @bigcommerce/memoize receives a total of 1,353 weekly downloads. As such, @bigcommerce/memoize popularity was classified as popular.
We found that @bigcommerce/memoize demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 12 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.