mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-10 12:42:27 +09:00
23 lines
727 B
TypeScript
23 lines
727 B
TypeScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import type {CacheLogger} from '@pkgs/cache/src/CacheProviderTypes';
|
|
import type {CacheLookupResult} from '@pkgs/cache/src/ICacheService';
|
|
|
|
export function parseCachedValue<T>(value: string, logger?: CacheLogger): CacheLookupResult<T> {
|
|
try {
|
|
return {hit: true, value: JSON.parse(value)};
|
|
} catch {
|
|
logger?.error({valueLength: value.length}, '[CacheProvider] JSON parse error');
|
|
return {hit: false};
|
|
}
|
|
}
|
|
|
|
export function safeJsonParse<T>(value: string, logger?: CacheLogger): T | null {
|
|
const parsed = parseCachedValue<T>(value, logger);
|
|
return parsed.hit ? parsed.value : null;
|
|
}
|
|
|
|
export function serializeValue<T>(value: T): string {
|
|
return JSON.stringify(value);
|
|
}
|