Files
streamyfin/modules/top-shelf-cache/src/TopShelfCacheModule.ts
2026-05-21 08:47:45 +02:00

38 lines
1.0 KiB
TypeScript

import { NativeModule, requireNativeModule } from "expo";
import { Platform } from "react-native";
import type { TopShelfCacheModuleEvents } from "./TopShelfCache.types";
declare class TopShelfCacheModuleType extends NativeModule<TopShelfCacheModuleEvents> {
writeCache(json: string, apiKey?: string): boolean;
clearCache(): boolean;
}
let TopShelfCacheNativeModule: TopShelfCacheModuleType | null = null;
if (Platform.OS === "ios" && Platform.isTV) {
try {
TopShelfCacheNativeModule =
requireNativeModule<TopShelfCacheModuleType>("TopShelfCache");
} catch {
TopShelfCacheNativeModule = null;
}
}
export function writeTopShelfCache(json: string, apiKey?: string): boolean {
if (!TopShelfCacheNativeModule) return false;
try {
return TopShelfCacheNativeModule.writeCache(json, apiKey);
} catch {
try {
return TopShelfCacheNativeModule.writeCache(json);
} catch {
return false;
}
}
}
export function clearTopShelfCache(): boolean {
return TopShelfCacheNativeModule?.clearCache() ?? false;
}