1.9.0 • Published 1 year ago

prime-select v1.9.0

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

Prime Select

npm version

Replacement for libraries like lodash.memo, fast-memoize, reselect or other caching packages ?

No, Prime Select is a general purpose caching library, used to introduce caching at granular functional level.

Offers


  1. Addresses some common problem with functional caching libraries.
  2. Global cache clearance support. (Do not left unwanted computed cached values in memory)
  3. Improved metrics about cache functions and memory usage.
  4. Shallow / deep cache validation handle support.
  5. Typescript compatible, since prime-select is bootstrapped with typescript

Getting Started


Install

yarn add prime-select

or

npm install prime-select

Usage

import PrimeSelect from "prime-select";

interface IState {
  name: string;
}

// create cache selector using PrimeSelect
const memoizedFunction = PrimeSelect.createSelector({
  name: "memoizedFunction",
  dependency: (props: { state: IState }) => [props.state.name], // dependency array (same like React's useEffect's deps array)
  compute: ({ state }) => {
    return state.name;
  },
  cacheValidationType: "shallow", // default validation type - faster
  reComputationMetrics: false, // used to debug the memoized function with dependency diff metrics
});

const state: IState = { name: "John" };

// using main cache
const fromMainCache = memoizedFunction({ props: { state } });

// spanning sub cache
const fromSubCache = memoizedFunction({
  props: { state },
  subCacheId: state.name,
});

Using with React

https://codesandbox.io/s/primeselect-2mku74?file=/src/PrimeSelectUsage.tsx

Storybook

https://main--6351f82565c7fab2bce55dad.chromatic.com/?path=/story/prime-select--usage

Contribution Guidelines

Follow this Guidelines for Contributing to prime-select.

Supported by

Lumel Technologies (Lumel is hiring - Checkout Careers)

1.9.0

1 year ago

1.8.1

2 years ago

1.8.0

2 years ago

1.7.0

2 years ago

1.6.2

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

1.5.0

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago