mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-08-25 21:59:40 +00:00
24 lines
737 B
TypeScript
24 lines
737 B
TypeScript
import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
import { Cacheable } from 'cacheable';
|
|
|
|
@Injectable()
|
|
export class CacheService {
|
|
private readonly logger = new Logger(CacheService.name);
|
|
constructor(@Inject('CACHE_INSTANCE') private readonly cache: Cacheable) {}
|
|
|
|
get<T>(key: string): Promise<T | undefined> {
|
|
this.logger.log(`Getting value for key ${key}`);
|
|
return this.cache.get(key);
|
|
}
|
|
|
|
async set<T>(key: string, value: T, ttl?: number | string): Promise<void> {
|
|
this.logger.log(`Setting value for key ${key}`);
|
|
await this.cache.set(key, value, ttl);
|
|
}
|
|
|
|
async delete(key: string): Promise<void> {
|
|
this.logger.log(`Deleting value for key ${key}`);
|
|
await this.cache.delete(key);
|
|
}
|
|
}
|