UNPKG

@koalarx/ui

Version:

Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.

38 lines 4.7 kB
import { BehaviorSubject, Observable, skipWhile } from "rxjs"; export class KoalaApiRequesterCache { static createCache(name) { if (!this.hasCache(name)) { this.cache.push({ name, data: new BehaviorSubject(undefined) }); } } static setDataInCache(name, data) { this.getCacheSubject(name)?.next(data); } static getCacheSubject(name) { return this.cache.find(item => item.name === name)?.data; } static getCacheAsObservable(name) { return new Observable(observe => { this.getCacheSubject(name) .pipe(skipWhile(value => value === undefined)) .subscribe({ next: value => { observe.next(value); observe.complete(); }, error: err => { observe.error(err); observe.complete(); } }); }); } static hasCache(name) { return !!this.getCacheSubject(name); } } KoalaApiRequesterCache.cache = []; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTzlELE1BQU0sT0FBTyxzQkFBc0I7SUFHMUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFZO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNkLElBQUk7Z0JBQ0osSUFBSSxFQUFFLElBQUksZUFBZSxDQUFNLFNBQVMsQ0FBQzthQUMxQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQVksRUFBRSxJQUFTO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQUksSUFBWTtRQUNoRCxPQUFPLElBQUksVUFBVSxDQUFJLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2lCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QyxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7QUF0Q2MsNEJBQUssR0FBcUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBza2lwV2hpbGUgfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtvYWxhQ2FjaGVEYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkYXRhOiBCZWhhdmlvclN1YmplY3Q8YW55Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUge1xuICBwcml2YXRlIHN0YXRpYyBjYWNoZTogS29hbGFDYWNoZURhdGFbXSA9IFtdO1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ2FjaGUobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmhhc0NhY2hlKG5hbWUpKSB7XG4gICAgICB0aGlzLmNhY2hlLnB1c2goe1xuICAgICAgICBuYW1lLFxuICAgICAgICBkYXRhOiBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odW5kZWZpbmVkKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzZXREYXRhSW5DYWNoZShuYW1lOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICAgIHRoaXMuZ2V0Q2FjaGVTdWJqZWN0KG5hbWUpPy5uZXh0KGRhdGEpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRDYWNoZVN1YmplY3QobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbmFtZSk/LmRhdGE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldENhY2hlQXNPYnNlcnZhYmxlPFQ+KG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihvYnNlcnZlID0+IHtcbiAgICAgIHRoaXMuZ2V0Q2FjaGVTdWJqZWN0KG5hbWUpXG4gICAgICAgICAgLnBpcGUoc2tpcFdoaWxlKHZhbHVlID0+IHZhbHVlID09PSB1bmRlZmluZWQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogdmFsdWUgPT4ge1xuICAgICAgICAgICAgICBvYnNlcnZlLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNDYWNoZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldENhY2hlU3ViamVjdChuYW1lKTtcbiAgfVxufVxuIl19