import type { SettingSource } from './constants.js'import type { SettingsJson } from './types.js'import type { SettingsWithErrors, ValidationError } from './validation.js'let sessionSettingsCache: SettingsWithErrors | null = nullexport function getSessionSettingsCache(): SettingsWithErrors | null {return sessionSettingsCache}export function setSessionSettingsCache(value: SettingsWithErrors): void {sessionSettingsCache = value}/*** Per-source cache for getSettingsForSource. Invalidated alongside the* merged sessionSettingsCache — same resetSettingsCache() triggers* (settings write, --add-dir, plugin init, hooks refresh).*/const perSourceCache = new Map<SettingSource, SettingsJson | null>()export function getCachedSettingsForSource(source: SettingSource,): SettingsJson | null | undefined {// undefined = cache miss; null = cached "no settings for this source"return perSourceCache.has(source) ? perSourceCache.get(source) : undefined}export function setCachedSettingsForSource(source: SettingSource,value: SettingsJson | null,): void {perSourceCache.set(source, value)}/*** Path-keyed cache for parseSettingsFile. Both getSettingsForSource and* loadSettingsFromDisk call parseSettingsFile on the same paths during* startup — this dedupes the disk read + zod parse.*/type ParsedSettings = {settings: SettingsJson | nullerrors: ValidationError[]}const parseFileCache = new Map<string, ParsedSettings>()export function getCachedParsedFile(path: string): ParsedSettings | undefined {return parseFileCache.get(path)}export function setCachedParsedFile(path: string, value: ParsedSettings): void {parseFileCache.set(path, value)}export function resetSettingsCache(): void {sessionSettingsCache = nullperSourceCache.clear()parseFileCache.clear()}/*** Plugin settings base layer for the settings cascade.* pluginLoader writes here after loading plugins;* loadSettingsFromDisk reads it as the lowest-priority base.*/let pluginSettingsBase: Record<string, unknown> | undefinedexport function getPluginSettingsBase(): Record<string, unknown> | undefined {return pluginSettingsBase}export function setPluginSettingsBase(settings: Record<string, unknown> | undefined,): void {pluginSettingsBase = settings}export function clearPluginSettingsBase(): void {pluginSettingsBase = undefined}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。