UNPKG

@workday/canvas-kit-react

Version:

The parent module that contains all Workday Canvas Kit React components

24 lines (19 loc) 535 B
/** * Simple memoize function. It takes a function and a resolver function to generate a * cache key */ export function memoize<T extends (...args: any[]) => any>( func: T, resolver: (...args: Parameters<T>) => string ): T { const cache = new Map<string, ReturnType<T>>(); return function(...args: Parameters<T>): ReturnType<T> { const key = resolver(...args); if (cache.has(key)) { return cache.get(key)!; } const result = func(...args); cache.set(key, result); return result; } as T; }