platform-utils
Helper functions for working with platform names in the Node.js vernacular (darwin, win32, linux). Works in Node.js and browsers.
Plays well with the Node.js core modules
os.platform()
and
process.platform
.
Installation
npm install platform-utils --save
Usage
This module exports an object with utility functions.
const getPlatformFromFilename getPlatformFromUserAgent getPlatformLabel } =
API
getPlatformFromFilename(filename)
filename
String - e.g.dist/my-cool-app.dmg
Returns String darwin
, win32
, linux
, or null.
Here's the gist of how the detection works:
if ext === 'exe' return 'win32'if ext === 'zip' && parts return 'win32'if ext === 'zip' && parts return 'win32'if ext === 'zip' && parts return 'win32'if ext === 'zip' && parts return 'win32' if ext === 'dmg' return 'darwin'if ext === 'pkg' return 'darwin'if ext === 'zip' && parts return 'darwin'if ext === 'zip' && parts return 'darwin'if ext === 'zip' && parts return 'darwin'if ext === 'zip' && parts return 'darwin'if ext === 'zip' && parts return 'darwin' if ext === 'rpm' return 'linux'if ext === 'deb' return 'linux'if ext === 'appimage' return 'linux'if ext === 'zip' && parts return 'linux'
getPlatformFromUserAgent([agent])
agent
String (optional) - Can be omitted when used in the browser, wherenavigator.userAgent
will be used automatically.
Returns String darwin
, win32
, linux
, or null.
getPlatformLabel(platform)
platform
String - Can bedarwin
,win32
, orlinux
.
Returns String macOS
, Windows
, Linux
, or null.
Tests
npm installnpm test
Dependencies
- ua-parser-js: Lightweight JavaScript-based user-agent string parser
Dev Dependencies
- buble: The blazing fast, batteries-included ES2015 compiler
- chai: BDD/TDD assertion library for node.js and the browser. Test framework agnostic.
- mocha: simple, flexible, fun test framework
- random-useragent: Get a random useragent (with an optional filter)
- standard: JavaScript Standard Style
- standard-markdown: Test your Markdown files for Standard JavaScript Style™
License
MIT