From 6451beddb2e42dbd38df54f3e570eafb0d948e44 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 24 Mar 2026 11:04:03 -0700 Subject: [PATCH] refactor(plugins): make runtime registry lazy --- src/plugins/runtime.test.ts | 7 +++++++ src/plugins/runtime.ts | 7 +++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/plugins/runtime.test.ts b/src/plugins/runtime.test.ts index e37b97f96bb..2fa9ef86b32 100644 --- a/src/plugins/runtime.test.ts +++ b/src/plugins/runtime.test.ts @@ -1,6 +1,7 @@ import { afterEach, describe, expect, it } from "vitest"; import { createEmptyPluginRegistry } from "./registry.js"; import { + getActivePluginRegistry, pinActivePluginHttpRouteRegistry, releasePinnedPluginHttpRouteRegistry, resetPluginRuntimeStateForTest, @@ -14,6 +15,12 @@ describe("plugin runtime route registry", () => { resetPluginRuntimeStateForTest(); }); + it("stays empty until a caller explicitly installs or requires a registry", () => { + resetPluginRuntimeStateForTest(); + + expect(getActivePluginRegistry()).toBeNull(); + }); + it("keeps the pinned route registry when the active plugin registry changes", () => { const startupRegistry = createEmptyPluginRegistry(); const laterRegistry = createEmptyPluginRegistry(); diff --git a/src/plugins/runtime.ts b/src/plugins/runtime.ts index c1c8974adc2..861fba6a7ce 100644 --- a/src/plugins/runtime.ts +++ b/src/plugins/runtime.ts @@ -17,7 +17,7 @@ const state: RegistryState = (() => { }; if (!globalState[REGISTRY_STATE]) { globalState[REGISTRY_STATE] = { - registry: createEmptyPluginRegistry(), + registry: null, httpRouteRegistry: null, httpRouteRegistryPinned: false, key: null, @@ -100,9 +100,8 @@ export function getActivePluginRegistryVersion(): number { } export function resetPluginRuntimeStateForTest(): void { - const emptyRegistry = createEmptyPluginRegistry(); - state.registry = emptyRegistry; - state.httpRouteRegistry = emptyRegistry; + state.registry = null; + state.httpRouteRegistry = null; state.httpRouteRegistryPinned = false; state.key = null; state.version += 1;