Prime Select - An opinionated dependancy array based caching library
npm install prime-select
> 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.
---
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
---
#### Install
yarn add prime-select
or
npm install prime-select
#### Usage
``typescript
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,
});
``
https://codesandbox.io/s/primeselect-2mku74?file=/src/PrimeSelectUsage.tsx
https://main--6351f82565c7fab2bce55dad.chromatic.com/?path=/story/prime-select--usage
Follow this Guidelines for Contributing to prime-select.
Lumel Technologies
(Lumel is hiring - Checkout Careers)