UNPKG

@oaklean/profiler-core

Version:

Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec

37 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.memoize = void 0; /** * Memoizes a function by caching its results for future invocations with the same arguments. * @param func The function to memoize. * @returns A memoized version of the function. * * Example usage: * * function expensiveOperation(n: number): number { * console.log('Computing...'); * return n * 2; * } * * const memoizedOperation = memoize(expensiveOperation); * * console.log(memoizedOperation(5)); // Computing... 10 * console.log(memoizedOperation(5)); // 10 (cached) * console.log(memoizedOperation(6)); // Computing... 12 * console.log(memoizedOperation(6)); // 12 (cached) */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function memoize(func) { const cache = new Map(); return ((...args) => { const key = JSON.stringify(args); if (cache.has(key)) { return cache.get(key); } const result = func(...args); cache.set(key, result); return result; }); } exports.memoize = memoize; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXIvbWVtb2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsOERBQThEO0FBQzlELFNBQWdCLE9BQU8sQ0FBb0MsSUFBTztJQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBRXZCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBbUIsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFaEMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3RCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUM1QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUV0QixPQUFPLE1BQU0sQ0FBQTtJQUNkLENBQUMsQ0FBTSxDQUFBO0FBQ1IsQ0FBQztBQWZELDBCQWVDIn0=