Aetheria/Aetheria.Rts.Web/Electron/preload.cjs
2026-07-05 01:17:27 +01:00

84 lines
4.2 KiB
JavaScript

// <auto-generated />
// Generated by scripts/generate-rts-bindings.mjs from the RTS IPC surface contract.
const { contextBridge, ipcRenderer } = require("electron");
const channels = {
mapViewport: "aetheria-rts:map-viewport",
objectsViewport: "aetheria-rts:objects-viewport",
gravityViewport: "aetheria-rts:gravity-viewport",
renderSplatsViewport: "aetheria-rts:render-splats-viewport",
viewportFeed: "aetheria-rts:viewport-feed",
viewportFeedStop: "aetheria-rts:viewport-feed-stop",
viewportFeedUpdate: "aetheria-rts:viewport-feed-update",
selectedObject: "aetheria-rts:selected-object",
inventory: "aetheria-rts:inventory",
daemonHealth: "aetheria-rts:daemon-health",
authorityStatus: "aetheria-rts:authority-status",
starbridgeSession: "aetheria-rts:starbridge-session",
assetManifest: "aetheria-rts:asset-manifest",
setMoveVector: "aetheria-rts:set-move-vector",
setTarget: "aetheria-rts:set-target",
surfaceCatalog: "aetheria-rts:surface-catalog",
surfaceCatalogIndex: "aetheria-rts:surface-catalog-index",
eveSurface: "aetheria-rts:eve-surface",
submitEveCommand: "aetheria-rts:submit-eve-command",
mainMenuSurface: "aetheria-rts:main-menu-surface",
debugSurface: "aetheria-rts:debug-surface",
debugSurfaceWatch: "aetheria-rts:debug-surface-watch",
debugSurfaceWatchStop: "aetheria-rts:debug-surface-watch-stop",
debugSurfaceChanged: "aetheria-rts:debug-surface-changed",
windowControl: "aetheria-rts:window-control",
health: "aetheria-rts:health",
};
contextBridge.exposeInMainWorld("aetheriaRts", {
mapViewport: request => ipcRenderer.invoke(channels.mapViewport, request),
objectsViewport: request => ipcRenderer.invoke(channels.objectsViewport, request),
gravityViewport: request => ipcRenderer.invoke(channels.gravityViewport, request),
renderSplatsViewport: request => ipcRenderer.invoke(channels.renderSplatsViewport, request),
watchViewportFeed: (request, callback) => {
const subscriptionId = `viewport-feed-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
const listener = (_event, message) => {
if (message?.subscriptionId === subscriptionId) {
callback(message.snapshot);
}
};
ipcRenderer.on(channels.viewportFeedUpdate, listener);
void ipcRenderer.invoke(channels.viewportFeed, { subscriptionId, feed: request });
return () => {
ipcRenderer.off(channels.viewportFeedUpdate, listener);
void ipcRenderer.invoke(channels.viewportFeedStop, subscriptionId);
};
},
selectedObject: request => ipcRenderer.invoke(channels.selectedObject, request),
inventory: request => ipcRenderer.invoke(channels.inventory, request),
daemonHealth: () => ipcRenderer.invoke(channels.daemonHealth),
authorityStatus: () => ipcRenderer.invoke(channels.authorityStatus),
starbridgeSession: () => ipcRenderer.invoke(channels.starbridgeSession),
assetManifest: () => ipcRenderer.invoke(channels.assetManifest),
setMoveVector: request => ipcRenderer.invoke(channels.setMoveVector, request),
setTarget: request => ipcRenderer.invoke(channels.setTarget, request),
surfaceCatalog: () => ipcRenderer.invoke(channels.surfaceCatalog),
surfaceCatalogIndex: () => ipcRenderer.invoke(channels.surfaceCatalogIndex),
eveSurface: request => ipcRenderer.invoke(channels.eveSurface, request),
submitEveCommand: request => ipcRenderer.invoke(channels.submitEveCommand, request),
mainMenuSurface: request => ipcRenderer.invoke(channels.mainMenuSurface, request),
debugSurface: () => ipcRenderer.invoke(channels.debugSurface),
watchDebugSurface: callback => {
const subscriptionId = `debug-surface-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
const listener = (_event, message) => {
if (message?.subscriptionId === subscriptionId) {
callback(message.surface);
}
};
ipcRenderer.on(channels.debugSurfaceChanged, listener);
void ipcRenderer.invoke(channels.debugSurfaceWatch, subscriptionId);
return () => {
ipcRenderer.off(channels.debugSurfaceChanged, listener);
void ipcRenderer.invoke(channels.debugSurfaceWatchStop, subscriptionId);
};
},
windowControl: request => ipcRenderer.invoke(channels.windowControl, request),
health: () => ipcRenderer.invoke(channels.health),
});