import fs from 'fs'; import path from 'path'; const UnityVersionParser = { get versionPattern() { return /20\d{2}\.\d\.\w{3,4}|3/; }, parse(projectVersionTxt) { const matches = projectVersionTxt.match(UnityVersionParser.versionPattern); if (!matches || matches.length === 0) { throw new Error(`Failed to parse version from "${projectVersionTxt}".`); } return matches[0]; }, read(projectPath) { const filePath = path.join(projectPath, 'ProjectSettings', 'ProjectVersion.txt'); if (!fs.existsSync(filePath)) { throw new Error( `Project settings file not found at "${filePath}". Have you correctly set the projectPath?`, ); } return UnityVersionParser.parse(fs.readFileSync(filePath, 'utf8')); }, }; export default UnityVersionParser;