igir
Version:
🕹 A zero-setup ROM collection manager that sorts, filters, extracts or archives, patches, and reports on collections of any size on any OS.
31 lines • 1.13 kB
JavaScript
import fs from 'node:fs';
import path from 'node:path';
import url from 'node:url';
/**
* Search for a {@link fileName} in {@link filePath} or any of its parent directories.
*/
function scanUpPathForFile(filePath, fileName) {
const fullPath = path.join(filePath, fileName);
if (fs.existsSync(fullPath)) {
return fullPath;
}
const parentPath = path.dirname(filePath);
if (parentPath !== filePath) {
return scanUpPathForFile(path.dirname(filePath), fileName);
}
return undefined;
}
const PACKAGE_JSON_PATH = path.resolve(scanUpPathForFile(url.fileURLToPath(new URL('.', import.meta.url)), 'package.json'));
const PACKAGE_JSON = JSON.parse(fs.readFileSync(PACKAGE_JSON_PATH).toString());
/**
* A static class of globals that are parsed from `package.json` at startup, to be used widely.
*/
class Package {
}
Package.DIRECTORY = path.dirname(PACKAGE_JSON_PATH);
Package.NAME = PACKAGE_JSON.name;
Package.HOMEPAGE = PACKAGE_JSON.homepage;
Package.VERSION = PACKAGE_JSON.version;
Package.ENGINES_NODE = PACKAGE_JSON.engines.node;
export default Package;
//# sourceMappingURL=package.js.map