29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
import type { PluginBridgeExecuteEnvelope, PluginBridgeExecutionResult } from "./pluginBridge";
|
|
import type { GameClientBridgeCommandFilterRequest, GameClientBridgeQueueRequest, GameClientBridgeSnapshotQuery, LogStreamCursorRequest, LogStreamCursorResponse, LogStreamListResponse } from "../api/types";
|
|
|
|
export interface PluginDataMutation {
|
|
operation: "put" | "delete";
|
|
key: string;
|
|
value?: Record<string, unknown>;
|
|
}
|
|
|
|
export interface PluginPageWorkspaceActions {
|
|
pluginData?: {
|
|
list: (collection: string, key?: string) => Promise<unknown>;
|
|
put: (collection: string, key: string, value: Record<string, unknown>) => Promise<unknown>;
|
|
delete: (collection: string, key: string) => Promise<void>;
|
|
transact: (collection: string, mutations: PluginDataMutation[]) => Promise<unknown>;
|
|
};
|
|
gameClient?: {
|
|
queue: (request: GameClientBridgeQueueRequest) => Promise<unknown>;
|
|
get: (commandId: string) => Promise<unknown>;
|
|
list: (filter?: GameClientBridgeCommandFilterRequest) => Promise<unknown>;
|
|
snapshots: (query?: GameClientBridgeSnapshotQuery) => Promise<unknown>;
|
|
};
|
|
logs?: {
|
|
listStreams: () => Promise<LogStreamListResponse>;
|
|
query: (request: LogStreamCursorRequest) => Promise<LogStreamCursorResponse>;
|
|
};
|
|
dispatch?: (envelope: PluginBridgeExecuteEnvelope, signal?: AbortSignal) => Promise<PluginBridgeExecutionResult>;
|
|
}
|