@moddota/find-steam-app
Version:
Find location of an installed Steam app
70 lines • 2.47 kB
JavaScript
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
;