Files
searchi/apps/desktop/src/desktop-api.ts
T

33 lines
900 B
TypeScript

import {
invoke as nativeInvoke,
isTauri,
convertFileSrc,
} from "@tauri-apps/api/core";
import { CaptureBridge } from "./capture-bridge";
import { nativePreviewToken } from "./media-access";
const capture = new CaptureBridge();
export const isNativeDesktop = () => isTauri();
export const isCaptureSurface = () => capture.active;
export const isDesktopSurface = () => isTauri() || capture.active;
export async function initializeDesktopSurface() {
if (isTauri()) return;
await capture.initialize(window.location.href);
}
export function invoke<T>(
command: string,
args?: Record<string, unknown>,
): Promise<T> {
return isTauri()
? nativeInvoke<T>(command, args)
: capture.invoke<T>(command, args);
}
export function prepareMediaURL(path: string) {
if (isTauri())
return convertFileSrc(nativePreviewToken(path), "searchi-media");
return capture.mediaURL(path);
}