@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
29 lines • 3.86 kB
JavaScript
import { Injectable } from '@angular/core';
import { InventoryService } from '@c8y/client';
import { memoize } from 'lodash-es';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/client";
export class MoNameCacheService {
constructor(inventoryService) {
this.inventoryService = inventoryService;
this.clearCacheTimer = [];
this.cacheLifeSpan = 5 * 60 * 1000; // 5 minutes
this.getMoName = memoize(async (id) => {
const { data } = await this.inventoryService.detail(id);
return data.name ? data.name : '';
});
}
resetCacheTimer(id) {
clearTimeout(this.clearCacheTimer[id]);
this.clearCacheTimer[id] = setTimeout(() => {
this.getMoName.cache.delete(id);
}, this.cacheLifeSpan);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoNameCacheService, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoNameCacheService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoNameCacheService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.InventoryService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW8tbmFtZS1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vbW8tbmFtZS1jYWNoZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUdwQyxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBUjlDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGtCQUFhLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxZQUFZO1FBRW5ELGNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxFQUFFO1lBQzdCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFc0QsQ0FBQztJQUUxRCxlQUFlLENBQUMsRUFBRTtRQUNoQixZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQWhCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IG1lbW9pemUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1vTmFtZUNhY2hlU2VydmljZSB7XG4gIHByaXZhdGUgY2xlYXJDYWNoZVRpbWVyID0gW107XG4gIHByaXZhdGUgY2FjaGVMaWZlU3BhbiA9IDUgKiA2MCAqIDEwMDA7IC8vIDUgbWludXRlc1xuXG4gIGdldE1vTmFtZSA9IG1lbW9pemUoYXN5bmMgaWQgPT4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmRldGFpbChpZCk7XG4gICAgcmV0dXJuIGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICcnO1xuICB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UpIHt9XG5cbiAgcmVzZXRDYWNoZVRpbWVyKGlkKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xlYXJDYWNoZVRpbWVyW2lkXSk7XG4gICAgdGhpcy5jbGVhckNhY2hlVGltZXJbaWRdID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldE1vTmFtZS5jYWNoZS5kZWxldGUoaWQpO1xuICAgIH0sIHRoaXMuY2FjaGVMaWZlU3Bhbik7XG4gIH1cbn1cbiJdfQ==