From 045d5905425e51dced24fc0e2e756e08d1cb46ba Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Fri, 3 Apr 2026 20:05:50 +0900 Subject: [PATCH] perf(matrix): isolate probe runtime deps --- extensions/matrix/src/matrix/probe.runtime.ts | 4 ++++ extensions/matrix/src/matrix/probe.test.ts | 5 ++++- extensions/matrix/src/matrix/probe.ts | 6 +++--- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 extensions/matrix/src/matrix/probe.runtime.ts diff --git a/extensions/matrix/src/matrix/probe.runtime.ts b/extensions/matrix/src/matrix/probe.runtime.ts new file mode 100644 index 00000000000..d247a59d2a9 --- /dev/null +++ b/extensions/matrix/src/matrix/probe.runtime.ts @@ -0,0 +1,4 @@ +import { createMatrixClient } from "./client.js"; + +// Keep probe's runtime seam narrow so tests can mock it without loading the full client barrel. +export { createMatrixClient }; diff --git a/extensions/matrix/src/matrix/probe.test.ts b/extensions/matrix/src/matrix/probe.test.ts index 9d6f3e3c1ff..b01d78caee9 100644 --- a/extensions/matrix/src/matrix/probe.test.ts +++ b/extensions/matrix/src/matrix/probe.test.ts @@ -3,8 +3,11 @@ import { beforeEach, describe, expect, it, vi } from "vitest"; const createMatrixClientMock = vi.fn(); const isBunRuntimeMock = vi.fn(() => false); -vi.mock("./client.js", () => ({ +vi.mock("./probe.runtime.js", () => ({ createMatrixClient: (...args: unknown[]) => createMatrixClientMock(...args), +})); + +vi.mock("./client/runtime.js", () => ({ isBunRuntime: () => isBunRuntimeMock(), })); diff --git a/extensions/matrix/src/matrix/probe.ts b/extensions/matrix/src/matrix/probe.ts index 9795a601563..f90cf5a8074 100644 --- a/extensions/matrix/src/matrix/probe.ts +++ b/extensions/matrix/src/matrix/probe.ts @@ -3,13 +3,13 @@ import type { SsrFPolicy } from "../runtime-api.js"; import type { BaseProbeResult } from "../runtime-api.js"; import { isBunRuntime } from "./client/runtime.js"; -type MatrixProbeRuntimeDeps = Pick; +type MatrixProbeRuntimeDeps = Pick; let matrixProbeRuntimeDepsPromise: Promise | undefined; async function loadMatrixProbeRuntimeDeps(): Promise { - matrixProbeRuntimeDepsPromise ??= import("./client.js").then((clientModule) => ({ - createMatrixClient: clientModule.createMatrixClient, + matrixProbeRuntimeDepsPromise ??= import("./probe.runtime.js").then((runtimeModule) => ({ + createMatrixClient: runtimeModule.createMatrixClient, })); return await matrixProbeRuntimeDepsPromise; }