From 0792223a879dba2d02ccefbbd43a728478114dad Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Tue, 12 May 2026 14:47:51 +0530 Subject: [PATCH] refactor(matrix): simplify dependency availability check --- extensions/matrix/src/matrix/deps.test.ts | 6 +----- extensions/matrix/src/matrix/deps.ts | 25 +++++++++-------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/extensions/matrix/src/matrix/deps.test.ts b/extensions/matrix/src/matrix/deps.test.ts index f950de54a15e..fe881c031a02 100644 --- a/extensions/matrix/src/matrix/deps.test.ts +++ b/extensions/matrix/src/matrix/deps.test.ts @@ -173,12 +173,8 @@ describe("ensureMatrixSdkInstalled", () => { throw new Error("Cannot find module"); }); await expect(ensureMatrixSdkInstalled({ resolveFn })).rejects.toThrow( - /matrix-js-sdk.*@matrix-org\/matrix-sdk-crypto-nodejs.*@matrix-org\/matrix-sdk-crypto-wasm/s, + /Matrix plugin dependencies are missing: matrix-js-sdk, @matrix-org\/matrix-sdk-crypto-nodejs, @matrix-org\/matrix-sdk-crypto-wasm\. Repair this plugin with `openclaw plugins update matrix` or run `openclaw doctor --fix`\./, ); - await expect(ensureMatrixSdkInstalled({ resolveFn })).rejects.toThrow( - /openclaw plugins update matrix/, - ); - await expect(ensureMatrixSdkInstalled({ resolveFn })).rejects.toThrow(/openclaw doctor --fix/); }); it("lists only the packages that fail to resolve", async () => { diff --git a/extensions/matrix/src/matrix/deps.ts b/extensions/matrix/src/matrix/deps.ts index 665f2f5e3521..672c3e4ce306 100644 --- a/extensions/matrix/src/matrix/deps.ts +++ b/extensions/matrix/src/matrix/deps.ts @@ -26,19 +26,15 @@ type MatrixCryptoRuntimeDeps = { }; function resolveMissingMatrixPackages(resolveFn?: (id: string) => string): string[] { - try { - const resolve = resolveFn ?? defaultResolveFn; - return REQUIRED_MATRIX_PACKAGES.filter((pkg) => { - try { - resolve(pkg); - return false; - } catch { - return true; - } - }); - } catch { - return [...REQUIRED_MATRIX_PACKAGES]; - } + const resolve = resolveFn ?? defaultResolveFn; + return REQUIRED_MATRIX_PACKAGES.filter((pkg) => { + try { + resolve(pkg); + return false; + } catch { + return true; + } + }); } export function isMatrixSdkAvailable(): boolean { @@ -46,9 +42,8 @@ export function isMatrixSdkAvailable(): boolean { } function buildMatrixDepsMissingMessage(missing: string[]): string { - const packages = missing.length > 0 ? missing.join(", ") : REQUIRED_MATRIX_PACKAGES.join(", "); return [ - `Matrix plugin dependencies are missing: ${packages}.`, + `Matrix plugin dependencies are missing: ${missing.join(", ")}.`, "Repair this plugin with `openclaw plugins update matrix` or run `openclaw doctor --fix`.", ].join(" "); }