UNPKG

@moddota/find-steam-app

Version:

Find location of an installed Steam app

70 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const p_filter_1 = tslib_1.__importDefault(require("p-filter")); const path_1 = tslib_1.__importDefault(require("path")); const libraries_1 = require("./libraries"); const manifest_1 = require("./manifest"); const steam_1 = require("./steam"); exports.findSteam = steam_1.findSteam; class SteamNotFoundError extends Error { constructor() { super('Steam installation directory not found'); this.name = 'SteamNotFoundError'; } } exports.SteamNotFoundError = SteamNotFoundError; /** * Searches for all local Steam libraries. * * @returns Array of paths to library folders. */ async function findSteamLibraries() { const steam = await steam_1.findSteam(); if (steam == null) throw new SteamNotFoundError(); return libraries_1.loadSteamLibraries(steam); } exports.findSteamLibraries = findSteamLibraries; /** * Searches for app in local Steam libraries. * * @returns Information about installed application. */ async function findSteamAppManifest(appId) { const libs = await findSteamLibraries(); const [library] = await p_filter_1.default(libs, lib => manifest_1.hasManifest(lib, appId)); if (library == null) return; return manifest_1.readManifest(library, appId); } exports.findSteamAppManifest = findSteamAppManifest; /** * Searches for app in local Steam libraries. * * @returns Path to installed app. */ async function findSteamAppByName(name) { const libs = await findSteamLibraries(); const [library] = await p_filter_1.default(libs, lib => fs_extra_1.default.pathExists(path_1.default.join(lib, 'common', name))); if (library == null) return; return path_1.default.join(library, 'common', name); } exports.findSteamAppByName = findSteamAppByName; /** * Searches for app in local Steam libraries. * * @returns Path to installed app. */ async function findSteamAppById(appId) { const libs = await findSteamLibraries(); const [library] = await p_filter_1.default(libs, lib => manifest_1.hasManifest(lib, appId)); if (library == null) return; const manifest = await manifest_1.readManifest(library, appId); return path_1.default.join(library, 'common', manifest.installdir); } exports.findSteamAppById = findSteamAppById; //# sourceMappingURL=index.js.map