UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

18 lines 2.25 kB
import { memoize as _memoize } from 'lodash-es'; /** * Decorator to memoize function results. * @param resolver Cache key resolver function, used by memoize from lodash. */ export function memoize(resolver) { return (target, fnName, descriptor) => { const fn = descriptor.value; descriptor.value = function (...args) { const memoizedFnName = `_${fnName}Memoized`; if (!this[memoizedFnName]) { this[memoizedFnName] = _memoize(fn, resolver); } return this[memoizedFnName](...args); }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9tZW1vaXplLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLFFBQVM7SUFDL0IsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUU7UUFDcEMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM1QixVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxJQUFJO1lBQ2xDLE1BQU0sY0FBYyxHQUFHLElBQUksTUFBTSxVQUFVLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSBhcyBfbWVtb2l6ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRvIG1lbW9pemUgZnVuY3Rpb24gcmVzdWx0cy5cbiAqIEBwYXJhbSByZXNvbHZlciBDYWNoZSBrZXkgcmVzb2x2ZXIgZnVuY3Rpb24sIHVzZWQgYnkgbWVtb2l6ZSBmcm9tIGxvZGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemUocmVzb2x2ZXI/KSB7XG4gIHJldHVybiAodGFyZ2V0LCBmbk5hbWUsIGRlc2NyaXB0b3IpID0+IHtcbiAgICBjb25zdCBmbiA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICBjb25zdCBtZW1vaXplZEZuTmFtZSA9IGBfJHtmbk5hbWV9TWVtb2l6ZWRgO1xuICAgICAgaWYgKCF0aGlzW21lbW9pemVkRm5OYW1lXSkge1xuICAgICAgICB0aGlzW21lbW9pemVkRm5OYW1lXSA9IF9tZW1vaXplKGZuLCByZXNvbHZlcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpc1ttZW1vaXplZEZuTmFtZV0oLi4uYXJncyk7XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==