adonis5-cache
Version:
Cache provider for AdonisJS 5
39 lines (38 loc) • 1.74 kB
TypeScript
declare module '@ioc:Adonis/Addons/Adonis5-Cache' {
import { CacheStorage } from '@ioc:Adonis/Addons/Adonis5-Cache';
type CacheKeysEventPayload = {
keys: string[];
};
type CacheDataEventPayload = {
[key: string]: unknown;
};
type CacheForgottenEventPayload = {
[key: string]: boolean;
};
type EventPayload = CacheDataEventPayload | CacheKeysEventPayload | CacheForgottenEventPayload;
interface CacheEvents {
'cache-record:read': CacheDataEventPayload;
'cache-record:written': CacheDataEventPayload;
'cache-record:missed': CacheKeysEventPayload;
'cache-record:forgotten': CacheForgottenEventPayload;
}
type CacheEventsConfig = Record<keyof CacheEvents, boolean>;
type TtlUnits = 'years' | 'year' | 'yrs' | 'yr' | 'y' | 'weeks' | 'week' | 'w' | 'days' | 'day' | 'd' | 'hours' | 'hour' | 'hrs' | 'hr' | 'h' | 'minutes' | 'minute' | 'mins' | 'min' | 'm' | 'seconds' | 'second' | 'secs' | 'sec' | 's' | 'milliseconds' | 'millisecond' | 'msecs' | 'msec' | 'ms';
interface CacheConfig {
recordTTL: number;
currentCacheStorage: CacheStorage;
enabledCacheStorages: CacheStorage[];
cacheKeyPrefix: string;
ttlUnits: TtlUnits;
enabledEvents: CacheEventsConfig;
}
}
declare module '@ioc:Adonis/Core/Event' {
import { CacheDataEventPayload, CacheKeysEventPayload, CacheForgottenEventPayload } from '@ioc:Adonis/Addons/Adonis5-Cache';
interface EventsList {
'cache-record:read': CacheDataEventPayload;
'cache-record:written': CacheDataEventPayload;
'cache-record:missed': CacheKeysEventPayload;
'cache-record:forgotten': CacheForgottenEventPayload;
}
}