1.0.6 • Published 5 months ago

@unlomtrois/steampath v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

steampath

TEST

CI

An elegant and lightweight Node.js library to locate the Steam installation directory across different operating systems: Windows, Linux, and macOS.

Features

  • Cross-Platform Support: Works seamlessly on Windows, Linux, and macOS.
  • Automatic Detection: Finds the Steam directory without any user configuration.
  • Handles Multiple Install Scenarios:
    • Standard installations
    • Flatpak and Snap installations on Linux
    • System-wide and user-specific installations on macOS
  • Asynchronous: Utilizes modern async/await syntax for non-blocking operations.

Installation

Install the package via npm:

npm install @unlomtrois/steampath

Usage

Import the library and use the locateSteamDir function to get the Steam directory path:

import { locateSteamDir } from "@unlomtrois/steampath";

(async () => {
    try {
        const steamDir = await locateSteamDir();
        console.log(`Steam is installed at: ${steamDir}`);
    } catch (error) {
        console.error(error.message);
    }
})();

Platform-Specific Functions

If you need to target a specific operating system, you can use the platform-specific functions:

  • Windows: locateSteamDirWindows()
  • Linux: locateSteamDirLinux()
  • macOS: locateSteamDirMacOS()
import { locateSteamDirWindows } from "@unlomtrois/steampath";

(async () => {
    try {
        const steamDir = await locateSteamDirWindows();
        console.log(`Steam is installed at: ${steamDir}`);
    } catch (error) {
        console.error(error.message);
    }
})();

API

locateSteamDir(): Promise<string>

Locates the Steam directory based on the current operating system.

  • Returns: A promise that resolves to the path of the Steam directory.
  • Throws: An error if the Steam directory is not found or the platform is unsupported.

locateSteamDirWindows(): Promise<string>

Locates the Steam directory on a Windows system.

  • Returns: A promise that resolves to the path of the Steam directory.
  • Throws: An error if the Steam directory is not found in the registry.

locateSteamDirLinux(): Promise<string>

Locates the Steam directory on a Linux system.

  • Returns: A promise that resolves to the path of the Steam directory.
  • Throws: An error if the Steam directory is not found.

locateSteamDirMacOS(): Promise<string>

Locates the Steam directory on a macOS system.

  • Returns: A promise that resolves to the path of the Steam directory.
  • Throws: An error if the Steam directory is not found.

Details

  • Windows Implementation:
    • Queries the Windows Registry to find the Steam installation path.
    • Supports both 32-bit and 64-bit registry hives.
  • Linux Implementation:
    • Checks multiple common installation paths, including standard, Flatpak, and Snap directories.
    • Uses parallel asynchronous checks for efficient detection.
  • macOS Implementation:
    • Looks for the Steam directory in the user's Library/Application Support folder.
    • Also checks the system-wide Library/Application Support directory.

Acknowledgements

This library was inspired by steamlocate-rs. Some concepts have been adapted from this Rust library to build a Node.js compatible solution.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This project is licensed under the MIT License.


Note: This library requires Node.js version 20 or higher to utilize the latest features and improvements in the fs module and asynchronous operations.

1.0.6

5 months ago

1.0.4

5 months ago

1.0.3

9 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago