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.
- Addresses some common problem with functional caching libraries.
- Global cache clearance support. (Do not left unwanted computed cached values in memory)
- Improved metrics about cache functions and memory usage.
- Shallow / deep cache validation handle support.
- Typescript compatible, since prime-select is bootstrapped with typescript
yarn add prime-select
or
npm install prime-select
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)