Skip to content

OS Detect

Лёгкое определение ОС и типа устройства для браузера, Node.js и SSR — с React-хуками и Vue composables. Без зависимостей.

Определение ОС и булевы проверки

Функция getOS() возвращает идентификатор текущей ОС: iOS, macOS, Android, Windows, Linux, ChromeOS или unknown. Дополнительные булевы функции (detectIsIOS, detectIsWindows и другие) позволяют гибко проверять конкретные системы без лишних зависимостей.

Асинхронное определение Windows 11

detectIsWindows11() асинхронно определяет Windows 11 в браузере (через getHighEntropyValues) и в Node.js (через os.release). Возвращает true только для Windows 11, позволяя отличить её от Windows 10 и более старых версий без сложных парсингов.

Категории устройств и корректная iPadOS

isMobileDevice() и isDesktopDevice() дают быструю грубую классификацию. Детектор iOS корректно обрабатывает iPadOS 13+, которая маскируется под Macintosh в userAgent, используя navigator.maxTouchPoints для точного различения.

Готовые хуки для React и Vue

useOS() (синхронный) и useIsWindows11() (асинхронный с состоянием null) доступны для React и Vue. React-хуки используют useMemo/useState, Vue-композаблы возвращают readonly-рефы. Все они SSR-безопасны и автоматически обновляются при изменении.

SSR, Node.js и нулевые зависимости

В Node.js библиотека читает process.platform, а все функции кэшируют результат после первого вызова. Есть сброс кэша для тестов. Пакет не имеет внешних зависимостей, поставляется в ESM, CJS и UMD, а React и Vue — опциональные peer-зависимости.