npm.io
2.0.3 • Published 6d agoCLI

waterfox-location

Licence
MIT
Version
2.0.3
Deps
1
Size
29 kB
Vulns
0
Weekly
486

Approximates the current location of the Waterfox browser across platforms.

waterfox-location Version Downloads workflow Provenance

Waterfox
  • By default checks only stable. Optionally can cascade to current / classic.
  • Supports macOS / Windows / Linux
  • Works both as an ES module or CommonJS

Installation

npm i waterfox-location

Support table

This table lists the default locations where Waterfox is typically installed for each supported platform and channel. By default, only the Stable channel is checked. When fallback is enabled, the package checks these paths (in order) and returns the first one found.

Platform Channel Paths checked

macOS
Waterfox (Stable)
  • /Applications/Waterfox.app/Contents/MacOS/waterfox
  • ~/Applications/Waterfox.app/Contents/MacOS/waterfox
Waterfox Current
  • /Applications/Waterfox Current.app/Contents/MacOS/waterfox
  • ~/Applications/Waterfox Current.app/Contents/MacOS/waterfox
Waterfox Classic
  • /Applications/Waterfox Classic.app/Contents/MacOS/waterfox
  • ~/Applications/Waterfox Classic.app/Contents/MacOS/waterfox

Windows
Waterfox (Stable)
  • %LOCALAPPDATA%\Waterfox\waterfox.exe
  • %PROGRAMFILES%\Waterfox\waterfox.exe
  • %PROGRAMFILES(X86)%\Waterfox\waterfox.exe
Waterfox Current
  • %LOCALAPPDATA%\Waterfox Current\waterfox.exe
  • %PROGRAMFILES%\Waterfox Current\waterfox.exe
  • %PROGRAMFILES(X86)%\Waterfox Current\waterfox.exe
Waterfox Classic
  • %LOCALAPPDATA%\Waterfox Classic\waterfox.exe
  • %PROGRAMFILES%\Waterfox Classic\waterfox.exe
  • %PROGRAMFILES(X86)%\Waterfox Classic\waterfox.exe

Linux/other
Waterfox (Stable)
  • waterfox (on $PATH)
Waterfox Current
  • waterfox-current (on $PATH)
Waterfox Classic
  • waterfox-classic (on $PATH)

Returns the first existing path found (given selected channels), or null if none are found.

Usage

Via Node.js (strict by default):

import waterfoxLocation from 'waterfox-location'
import {
  locateWaterfoxOrExplain,
  getInstallGuidance,
  getWaterfoxVersion
} from 'waterfox-location'

// Strict (Stable only)
console.log(waterfoxLocation())
// => "/Applications/Waterfox.app/Contents/MacOS/waterfox" or null

// Enable fallback (Stable / Current / Classic)
console.log(waterfoxLocation(true))
// => first found among Stable/Current/Classic or null

// Throw with an install guide when not found
try {
  const bin = locateWaterfoxOrExplain({allowFallback: true})
  console.log(bin)

  // Cross-platform version (no exec by default)
  console.log(getWaterfoxVersion(bin)) // e.g. "6.5.3" or null

  // Opt-in: allow executing the binary (Linux/other)
  console.log(getWaterfoxVersion(bin, {allowExec: true}))
} catch (e) {
  console.error(String(e))
  // Or print getInstallGuidance() explicitly
}

CommonJS:

const api = require('waterfox-location')
const locateWaterfox = api.default || api

Via CLI:

npx waterfox-location
# Strict (Stable only)

npx waterfox-location --fallback
# Enable cascade (Stable / Current / Classic)

# Respect environment overrides
WATERFOX_BINARY=/custom/path/to/waterfox npx waterfox-location

# Print browser version (empty + exit code 2 if unavailable)
npx waterfox-location --waterfox-version
npx waterfox-location --browser-version

# Opt-in: allow executing the binary to fetch version
npx waterfox-location --browser-version --allow-exec
Environment overrides

If this environment variable is set and points to an existing binary, it takes precedence:

  • WATERFOX_BINARY

API

  • default export locateWaterfox(allowFallback?: boolean): string | null
  • locateWaterfoxOrExplain(options?: boolean | { allowFallback?: boolean }): string
  • getWaterfoxVersion(bin: string, opts?: { allowExec?: boolean }): string | null
  • getInstallGuidance(): string

License

MIT (c) Cezar Augusto.

Keywords