JSPM

  • Created
  • Published
  • Downloads 15023915
  • Score
    100M100P100Q256077F
  • License MIT

A memoization function that uses a WeakMap

Package Exports

  • @emotion/weak-memoize
  • @emotion/weak-memoize/dist/weak-memoize.browser.cjs.js
  • @emotion/weak-memoize/dist/weak-memoize.cjs.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@emotion/weak-memoize) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@emotion/weak-memoize

A memoization function that uses a WeakMap

Install

yarn add @emotion/weak-memoize

Usage

Because @emotion/weak-memoize uses a WeakMap the argument must be a non primitive type, e.g. objects, functions, arrays and etc. The function passed to weakMemoize must also only accept a single argument.

import weakMemoize from '@emotion/weak-memoize'

let doThing = weakMemoize(({ someProperty }) => {
  return { newName: someProperty }
})

let obj = { someProperty: true }

let firstResult = doThing(obj)

let secondResult = doThing(obj)

firstResult === secondResult // true

let newObj = { someProperty: true }

let thirdResult = doThing(newObj)

thirdResult === firstResult // false