Notes/src/services/sync_options.ts

31 lines
1.2 KiB
TypeScript
Raw Normal View History

"use strict";
import optionService from "./options.js";
import config from "./config.js";
/*
* Primary configuration for sync is in the options (document), but we allow to override
* these settings in config file. The reason for that is to avoid a mistake of loading a live/production
* document with live sync settings in a dev/debug environment. Changes would then successfully propagate
* to live sync server.
*/
2025-01-24 00:02:45 +01:00
function get(name: keyof typeof config.Sync) {
return (config["Sync"] && config["Sync"][name]) || optionService.getOption(name);
}
export default {
// env variable is the easiest way to guarantee we won't overwrite prod data during development
// after copying prod document/data directory
2025-01-09 18:07:02 +02:00
getSyncServerHost: () => process.env.TRILIUM_SYNC_SERVER_HOST || get("syncServerHost"),
2020-06-20 12:31:38 +02:00
isSyncSetup: () => {
2025-01-09 18:07:02 +02:00
const syncServerHost = get("syncServerHost");
2018-12-22 09:54:09 +01:00
2023-06-30 11:18:34 +02:00
// special value "disabled" is here to support a use case where the document is configured with sync server,
2018-12-22 09:54:09 +01:00
// and we need to override it with config from config.ini
2025-01-09 18:07:02 +02:00
return !!syncServerHost && syncServerHost !== "disabled";
2018-12-22 09:54:09 +01:00
},
2025-01-09 18:07:02 +02:00
getSyncTimeout: () => parseInt(get("syncServerTimeout")) || 120000,
getSyncProxy: () => get("syncProxy")
2020-06-20 12:31:38 +02:00
};