in src/data/source.ts [199:227]
function checkAndUpdateEtags(sources: FetchedSource[]) {
let newEtags: string[] | undefined = sources.map(s => s.etag ?? "");
if (newEtags.every(s => s.length === 0)) {
newEtags = undefined;
}
if (!newEtags) return;
if (settings.data_etags) {
let mismatch = settings.data_etags.length !== newEtags.length;
if (!mismatch) {
for (let i = 0; i < newEtags.length; i++) {
if (settings.data_etags[i] !== newEtags[i]) {
mismatch = true;
break;
}
}
}
if (mismatch) {
alert("Warning: the source data has changed since the link was created.");
} else {
// No need to update data_etags (which will cause the settings to
// fire a change, even if it's the same data).
return;
}
}
settings.data_etags = newEtags;
}