mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-30 19:32:27 +00:00
69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
export const DEFAULT_PLUGIN_DISCOVERY_CACHE_MS = 1000;
|
|
export const DEFAULT_PLUGIN_MANIFEST_CACHE_MS = 1000;
|
|
|
|
export function shouldUsePluginSnapshotCache(env: NodeJS.ProcessEnv): boolean {
|
|
if (env.OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE?.trim()) {
|
|
return false;
|
|
}
|
|
if (env.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE?.trim()) {
|
|
return false;
|
|
}
|
|
const discoveryCacheMs = env.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS?.trim();
|
|
if (discoveryCacheMs === "0") {
|
|
return false;
|
|
}
|
|
const manifestCacheMs = env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS?.trim();
|
|
if (manifestCacheMs === "0") {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
export function resolvePluginCacheMs(rawValue: string | undefined, defaultMs: number): number {
|
|
const raw = rawValue?.trim();
|
|
if (raw === "" || raw === "0") {
|
|
return 0;
|
|
}
|
|
if (!raw) {
|
|
return defaultMs;
|
|
}
|
|
const parsed = Number.parseInt(raw, 10);
|
|
if (!Number.isFinite(parsed)) {
|
|
return defaultMs;
|
|
}
|
|
return Math.max(0, parsed);
|
|
}
|
|
|
|
export function resolvePluginSnapshotCacheTtlMs(env: NodeJS.ProcessEnv): number {
|
|
const discoveryCacheMs = resolvePluginCacheMs(
|
|
env.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS,
|
|
DEFAULT_PLUGIN_DISCOVERY_CACHE_MS,
|
|
);
|
|
const manifestCacheMs = resolvePluginCacheMs(
|
|
env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS,
|
|
DEFAULT_PLUGIN_MANIFEST_CACHE_MS,
|
|
);
|
|
return Math.min(discoveryCacheMs, manifestCacheMs);
|
|
}
|
|
|
|
export function buildPluginSnapshotCacheEnvKey(
|
|
env: NodeJS.ProcessEnv,
|
|
options: { includeProcessVitestFallback?: boolean } = {},
|
|
) {
|
|
return {
|
|
OPENCLAW_BUNDLED_PLUGINS_DIR: env.OPENCLAW_BUNDLED_PLUGINS_DIR ?? "",
|
|
OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE: env.OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE ?? "",
|
|
OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE: env.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE ?? "",
|
|
OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS: env.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS ?? "",
|
|
OPENCLAW_PLUGIN_MANIFEST_CACHE_MS: env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS ?? "",
|
|
OPENCLAW_HOME: env.OPENCLAW_HOME ?? "",
|
|
OPENCLAW_STATE_DIR: env.OPENCLAW_STATE_DIR ?? "",
|
|
OPENCLAW_CONFIG_PATH: env.OPENCLAW_CONFIG_PATH ?? "",
|
|
HOME: env.HOME ?? "",
|
|
USERPROFILE: env.USERPROFILE ?? "",
|
|
VITEST: options.includeProcessVitestFallback
|
|
? (env.VITEST ?? process.env.VITEST ?? "")
|
|
: (env.VITEST ?? ""),
|
|
};
|
|
}
|