refactor(ipc): validate write payloads in preload

This commit is contained in:
ZacharyZhang-NY committed 2026-04-24 01:31:29 -04:00
1 parent 3609456ca5
commit 227fd7faf2
9 files changed
+302 -35

No files matched your search

+11 -7
View File
@@ -3,19 +3,23 @@ import { IPC_CHANNELS } from "@shared/contracts/channels";
import type { DesktopApi } from "@shared/contracts/desktop-api";
import {
PRELOAD_FORWARDERS,
PRELOAD_INPUT_SCHEMAS,
mapPreloadInvokeArgs,
type PreloadForwardedApi,
} from "@shared/contracts/preload-forwarders";
import type { DesktopEvent } from "@shared/types";
function createForwardedApi(): PreloadForwardedApi {
const forwardedEntries = PRELOAD_FORWARDERS.map(({ api, channel, payload }) => [
api,
(...args: unknown[]) => ipcRenderer.invoke(
IPC_CHANNELS[channel],
...mapPreloadInvokeArgs(payload, args),
),
]);
const forwardedEntries = PRELOAD_FORWARDERS.map(({ api, channel, payload }) => {
const schema = PRELOAD_INPUT_SCHEMAS[api];
return [
api,
(...args: unknown[]) => ipcRenderer.invoke(
IPC_CHANNELS[channel],
...mapPreloadInvokeArgs(payload, args, schema),
),
];
});
return Object.fromEntries(forwardedEntries) as PreloadForwardedApi;
}