@obliczeniowo/elementary
Version:
Library made in Angular version 19
38 lines (37 loc) • 1.26 kB
TypeScript
import { Subject } from 'rxjs';
import { CacheOptions } from '../models/cache.model';
import * as i0 from "@angular/core";
export interface CacheItem<Res, Ext = any> {
body: Res;
reqBody?: any;
triggeredAt: Date;
method: 'get' | 'post' | 'put' | 'patch' | 'delete' | string;
responseAt?: Date;
cache?: CacheOptions;
fullPath: string;
external?: Ext;
reloading?: true;
}
export declare class CacheService {
protected cache: Map<string, CacheItem<any, any>>;
/**
* triggered when cache name value is changed or removed, not triggered when all cache was cleared
*/
changed: Subject<{
name: string;
item?: CacheItem<any>;
}>;
/**
* triggered when one name of cache was cleared (emit string as name of removed one) or all was cleared (emit undefined)
*/
cleared: Subject<string | undefined>;
set(name: string, item: CacheItem<any>): void;
get(name: string): CacheItem<any> | undefined;
has(name: string): boolean;
/**
* when no name clear all, single one when name is known
*/
clear(name?: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CacheService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<CacheService>;
}