function saveSettings()

in src/settings.ts [137:178]


function saveSettings(settings: Settings): LatestSavedSettings {
    const s: LatestSavedSettings = { version: LATEST_SAVED_SETTINGS_VERSION };

    if (settings.meta.storeDates) {
        let start = Math.floor(settings.dates.start.getTime() / DAY_MILLIS);
        let end = Math.floor(settings.dates.end.getTime() / DAY_MILLIS);
        s.dates = { start, end };
        if (settings.meta.relativeDates) {
            const now_day = Math.floor(Date.now() / DAY_MILLIS);
            s.dates.start -= now_day;
            s.dates.end -= now_day;
            s.dates.relative = true;
        }
    }
    if (settings.meta.storeEtags) {
        s.data_etags = settings.data_etags;
    }
    if (settings.meta.storeMeta) {
        s.meta = settings.meta;
    }
    if (settings.meta.storeSelection) {
        s.selection = settings.selection;
    }
    if (settings.meta.storeSignature) {
        s.signature = settings.signature;
        if (settings.meta.storePing) {
            s.pingCrashId = settings.pingCrashId;
        }
    }
    if (settings.meta.storeSort) {
        s.sort = settings.sort;
    }
    if (settings.meta.expiration) {
        const { months, days } = parseDuration(settings.meta.expiration);
        const expires = new Date();
        expires.setUTCMonth(expires.getUTCMonth() + months);
        expires.setUTCDate(expires.getUTCDate() + days);
        s.expires = expires.toISOString();
    }

    return s;
}