mirror of https://github.com/openclaw/openclaw.git
perf(memory): lazy-load matrix client runtime deps
This commit is contained in:
parent
9bbbee32e1
commit
4fd1e1c64f
|
|
@ -1,15 +1,32 @@
|
|||
import fs from "node:fs";
|
||||
import type { PinnedDispatcherPolicy } from "openclaw/plugin-sdk/infra-runtime";
|
||||
import type { SsrFPolicy } from "../../runtime-api.js";
|
||||
import { MatrixClient } from "../sdk.js";
|
||||
import type { MatrixClient } from "../sdk.js";
|
||||
import { resolveValidatedMatrixHomeserverUrl } from "./config.js";
|
||||
import { ensureMatrixSdkLoggingConfigured } from "./logging.js";
|
||||
import {
|
||||
maybeMigrateLegacyStorage,
|
||||
resolveMatrixStoragePaths,
|
||||
writeStorageMeta,
|
||||
} from "./storage.js";
|
||||
|
||||
type MatrixCreateClientRuntimeDeps = {
|
||||
MatrixClient: typeof import("../sdk.js").MatrixClient;
|
||||
ensureMatrixSdkLoggingConfigured: typeof import("./logging.js").ensureMatrixSdkLoggingConfigured;
|
||||
};
|
||||
|
||||
let matrixCreateClientRuntimeDepsPromise: Promise<MatrixCreateClientRuntimeDeps> | undefined;
|
||||
|
||||
async function loadMatrixCreateClientRuntimeDeps(): Promise<MatrixCreateClientRuntimeDeps> {
|
||||
matrixCreateClientRuntimeDepsPromise ??= Promise.all([
|
||||
import("../sdk.js"),
|
||||
import("./logging.js"),
|
||||
]).then(([sdkModule, loggingModule]) => ({
|
||||
MatrixClient: sdkModule.MatrixClient,
|
||||
ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured,
|
||||
}));
|
||||
return await matrixCreateClientRuntimeDepsPromise;
|
||||
}
|
||||
|
||||
export async function createMatrixClient(params: {
|
||||
homeserver: string;
|
||||
userId?: string;
|
||||
|
|
@ -25,6 +42,8 @@ export async function createMatrixClient(params: {
|
|||
ssrfPolicy?: SsrFPolicy;
|
||||
dispatcherPolicy?: PinnedDispatcherPolicy;
|
||||
}): Promise<MatrixClient> {
|
||||
const { MatrixClient, ensureMatrixSdkLoggingConfigured } =
|
||||
await loadMatrixCreateClientRuntimeDeps();
|
||||
ensureMatrixSdkLoggingConfigured();
|
||||
const env = process.env;
|
||||
const homeserver = await resolveValidatedMatrixHomeserverUrl(params.homeserver, {
|
||||
|
|
|
|||
Loading…
Reference in New Issue