try to detect invalid settings load

pull/609/head
Michael Shamoon 2 years ago
parent f09268230e
commit c01b60dbd1

@ -99,7 +99,7 @@ function Index({ initialSettings, fallback }) {
localStorage.setItem("hash", hashData.hash); localStorage.setItem("hash", hashData.hash);
} }
if (previousHash && previousHash !== hashData.hash) { if (!initialSettings.isValid || (previousHash && previousHash !== hashData.hash)) {
setStale(true); setStale(true);
localStorage.setItem("hash", hashData.hash); localStorage.setItem("hash", hashData.hash);
@ -111,7 +111,7 @@ function Index({ initialSettings, fallback }) {
} }
} }
} }
}, [hashData]); }, [hashData, initialSettings]);
if (stale) { if (stale) {
return ( return (

@ -1,6 +1,6 @@
/* eslint-disable no-console */ /* eslint-disable no-console */
import { join } from "path"; import { join } from "path";
import { existsSync, copyFile, readFileSync } from "fs"; import { existsSync, copyFile, readFileSync, statSync } from "fs";
import yaml from "js-yaml"; import yaml from "js-yaml";
@ -32,5 +32,18 @@ export function getSettings() {
const settingsYaml = join(process.cwd(), "config", "settings.yaml"); const settingsYaml = join(process.cwd(), "config", "settings.yaml");
const fileContents = readFileSync(settingsYaml, "utf8"); const fileContents = readFileSync(settingsYaml, "utf8");
return yaml.load(fileContents) ?? {};
let stats;
try {
stats = statSync(settingsYaml);
} catch (e) {
stats = {};
}
const yamlLoaded = yaml.load(fileContents) ?? {};
return {
...yamlLoaded,
isValid: fileContents !== "-\n" && stats.size !== 2 // see https://github.com/benphelps/homepage/pull/609
};
} }
Loading…
Cancel
Save