UNPKG

retail-calendar

Version:
31 lines (30 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function memoize(func, resolver) { var memoized = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var key = resolver ? resolver.apply(this, args) : args[0]; var cache = memoized.cache; if (cache.has(key)) { return cache.get(key); } var result = func.apply(this, args); memoized.cache = cache.set(key, result) || cache; return result; }; memoized.cache = new Map(); return memoized; } exports.memoize = memoize; function createMemoizationKeyFromCalendarOptionsAndYear(retailCalendarOptions, year) { return [stringifyCalendarOptions(retailCalendarOptions), year].join('_'); } exports.createMemoizationKeyFromCalendarOptionsAndYear = createMemoizationKeyFromCalendarOptionsAndYear; function stringifyCalendarOptions(retailCalendarOptions) { return Object.entries(retailCalendarOptions) .map(function (e) { return e.join(':'); }) .join('-'); }