import type { NativeApi } from "@t3tools/contracts"; import { __resetWsNativeApiForTests, createWsNativeApi } from "./wsNativeApi"; let cachedApi: NativeApi | undefined; export function readNativeApi(): NativeApi | undefined { if (typeof window === "undefined") return undefined; if (cachedApi) return cachedApi; if (window.nativeApi) { cachedApi = window.nativeApi; return cachedApi; } cachedApi = createWsNativeApi(); return cachedApi;} export function ensureNativeApi(): NativeApi { const api = readNativeApi(); if (!api) { throw new Error("Native API not found"); } return api;} export async function __resetNativeApiForTests() { cachedApi = undefined; await __resetWsNativeApiForTests();}
import type { NativeApi } from "@t3tools/contracts";
import { __resetWsNativeApiForTests, createWsNativeApi } from "./wsNativeApi";
let cachedApi: NativeApi | undefined;
export function readNativeApi(): NativeApi | undefined {
if (typeof window === "undefined") return undefined;
if (cachedApi) return cachedApi;
if (window.nativeApi) {
cachedApi = window.nativeApi;
return cachedApi;
}
cachedApi = createWsNativeApi();
return cachedApi;
}
export function ensureNativeApi(): NativeApi {
const api = readNativeApi();
if (!api) {
throw new Error("Native API not found");
}
return api;
}
export async function __resetNativeApiForTests() {
cachedApi = undefined;
await __resetWsNativeApiForTests();
}