Skip to content

Commit f8a68bf

Browse files
committed
refactor: extract ui runtime bridge wrapper
1 parent 51bcf9f commit f8a68bf

3 files changed

Lines changed: 52 additions & 3 deletions

File tree

index.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ import {
229229
applyUiRuntimeFromConfig,
230230
getStatusMarker,
231231
} from "./lib/runtime/ui-runtime.js";
232+
import { resolveUiRuntimeEntry } from "./lib/runtime/ui-runtime-entry.js";
232233
import { SessionAffinityStore } from "./lib/session-affinity.js";
233234
import { registerCleanup } from "./lib/shutdown.js";
234235
import {
@@ -514,9 +515,12 @@ export const OpenAIOAuthPlugin: Plugin = async ({ client }: PluginInput) => {
514515
};
515516

516517
const resolveUiRuntime = (): UiRuntimeOptions => {
517-
return resolveUiRuntimeFromConfig(loadPluginConfig, (pluginConfig) =>
518-
applyUiRuntimeFromConfig(pluginConfig, setUiRuntimeOptions),
519-
);
518+
return resolveUiRuntimeEntry({
519+
loadPluginConfig,
520+
resolveUiRuntimeFromConfig,
521+
applyUiRuntimeFromConfig: (pluginConfig) =>
522+
applyUiRuntimeFromConfig(pluginConfig, setUiRuntimeOptions),
523+
});
520524
};
521525

522526
const invalidateAccountManagerCache = (): void => {

lib/runtime/ui-runtime-entry.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { UiRuntimeOptions } from "../ui/runtime.js";
2+
3+
export function resolveUiRuntimeEntry(params: {
4+
loadPluginConfig: () => ReturnType<
5+
typeof import("../config.js").loadPluginConfig
6+
>;
7+
resolveUiRuntimeFromConfig: (
8+
loadPluginConfig: () => ReturnType<
9+
typeof import("../config.js").loadPluginConfig
10+
>,
11+
applyUiRuntimeFromConfig: (
12+
pluginConfig: ReturnType<typeof import("../config.js").loadPluginConfig>,
13+
) => UiRuntimeOptions,
14+
) => UiRuntimeOptions;
15+
applyUiRuntimeFromConfig: (
16+
pluginConfig: ReturnType<typeof import("../config.js").loadPluginConfig>,
17+
) => UiRuntimeOptions;
18+
}): UiRuntimeOptions {
19+
return params.resolveUiRuntimeFromConfig(
20+
params.loadPluginConfig,
21+
params.applyUiRuntimeFromConfig,
22+
);
23+
}

test/ui-runtime-entry.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { describe, expect, it, vi } from "vitest";
2+
import { resolveUiRuntimeEntry } from "../lib/runtime/ui-runtime-entry.js";
3+
4+
describe("ui runtime entry", () => {
5+
it("passes loader and apply callback through to the ui runtime resolver", () => {
6+
const loadPluginConfig = vi.fn(() => ({ a: 1 }));
7+
const resolveUiRuntimeFromConfig = vi.fn(() => ({ theme: {} }));
8+
const applyUiRuntimeFromConfig = vi.fn(() => ({ theme: {} }));
9+
10+
const result = resolveUiRuntimeEntry({
11+
loadPluginConfig: loadPluginConfig as never,
12+
resolveUiRuntimeFromConfig: resolveUiRuntimeFromConfig as never,
13+
applyUiRuntimeFromConfig: applyUiRuntimeFromConfig as never,
14+
});
15+
16+
expect(resolveUiRuntimeFromConfig).toHaveBeenCalledWith(
17+
loadPluginConfig,
18+
applyUiRuntimeFromConfig,
19+
);
20+
expect(result).toEqual({ theme: {} });
21+
});
22+
});

0 commit comments

Comments
 (0)