mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-20 18:30:15 +01:00
45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
const { removeNullishValues } = require('librechat-data-provider');
|
|
const { logger } = require('~/config');
|
|
|
|
/**
|
|
* Loads and maps the Cloudflare Turnstile configuration.
|
|
*
|
|
* Expected config structure:
|
|
*
|
|
* turnstile:
|
|
* siteKey: "your-site-key-here"
|
|
* options:
|
|
* language: "auto" // "auto" or an ISO 639-1 language code (e.g. en)
|
|
* size: "normal" // Options: "normal", "compact", "flexible", or "invisible"
|
|
*
|
|
* @param {TCustomConfig | undefined} config - The loaded custom configuration.
|
|
* @param {TConfigDefaults} configDefaults - The custom configuration default values.
|
|
* @returns {TCustomConfig['turnstile']} The mapped Turnstile configuration.
|
|
*/
|
|
function loadTurnstileConfig(config, configDefaults) {
|
|
const { turnstile: customTurnstile = {} } = config ?? {};
|
|
const { turnstile: defaults = {} } = configDefaults;
|
|
|
|
/** @type {TCustomConfig['turnstile']} */
|
|
const loadedTurnstile = removeNullishValues({
|
|
siteKey: customTurnstile.siteKey ?? defaults.siteKey,
|
|
options: customTurnstile.options ?? defaults.options,
|
|
});
|
|
|
|
const enabled = Boolean(loadedTurnstile.siteKey);
|
|
|
|
if (enabled) {
|
|
logger.info(
|
|
'Turnstile is ENABLED with configuration:\n' + JSON.stringify(loadedTurnstile, null, 2),
|
|
);
|
|
} else {
|
|
logger.info('Turnstile is DISABLED (no siteKey provided).');
|
|
}
|
|
|
|
|
|
return loadedTurnstile;
|
|
}
|
|
|
|
module.exports = {
|
|
loadTurnstileConfig,
|
|
};
|