Files
goldenChart/packages/shared/src/platform.ts
T
2026-06-14 19:20:48 +09:00

30 lines
960 B
TypeScript

/** 런타임 플랫폼 — web · desktop(Tauri) · mobile(Capacitor) */
export type RuntimePlatform = 'web' | 'desktop' | 'mobile';
export function isDesktop(): boolean {
if (typeof window === 'undefined') return false;
if ('__TAURI__' in window || '__TAURI_INTERNALS__' in window) return true;
return document.documentElement.classList.contains('desktop-client');
}
export function isMobileCapacitor(): boolean {
if (typeof window === 'undefined') return false;
try {
// Capacitor injects on native; avoid hard dependency
const cap = (window as Window & { Capacitor?: { isNativePlatform?: () => boolean } }).Capacitor;
return cap?.isNativePlatform?.() === true;
} catch {
return false;
}
}
export function getRuntimePlatform(): RuntimePlatform {
if (isDesktop()) return 'desktop';
if (isMobileCapacitor()) return 'mobile';
return 'web';
}
export function isWeb(): boolean {
return getRuntimePlatform() === 'web';
}