fix: strip UTF-8 BOM before parsing config.json (#478)
getDefaultMode() parsed the config with JSON.parse and no BOM strip, so a config.json saved with a UTF-8 BOM (common on Windows) failed to parse and the user's defaultMode was silently ignored. Strip the BOM first, matching the existing /^\uFEFF/ pattern in ponytail-activate.js, check-versions.js, and ponytail-mode-tracker.js. Closes #375 Co-authored-by: nanaubusiness <195150264+nanaubusiness@users.noreply.github.com>
This commit is contained in:
parent
7e6eca6e29
commit
9ec4fb8b54
|
|
@ -83,7 +83,8 @@ function getDefaultMode() {
|
|||
// 2. Config file
|
||||
try {
|
||||
const configPath = getConfigPath();
|
||||
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
||||
// Strip UTF-8 BOM (common on Windows-saved files) so JSON.parse doesn't choke
|
||||
const config = JSON.parse(fs.readFileSync(configPath, 'utf8').replace(/^\uFEFF/, ''));
|
||||
if (config.defaultMode && VALID_MODES.includes(config.defaultMode.toLowerCase())) {
|
||||
return config.defaultMode.toLowerCase();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue