narraleaf
Version:
Create your visual novel with Electron and React
81 lines (80 loc) • 2.25 kB
TypeScript
import { CrashReport } from "../../main/electron/app/app";
import { PlatformInfo } from "../../utils/pure/os";
import { SavedGame, SavedGameMetadata, SaveType } from "../game/save";
import { IPCMessageType, IPCType } from "../ipc/ipc";
import { ClientAppConfiguration } from "../@types/global";
export declare enum IpcEvent {
getPlatform = "getPlatform",
app_terminate = "app.terminate",
game_save_save = "game.save.save",
game_save_read = "game.save.read",
game_save_list = "game.save.list",
game_save_delete = "game.save.delete"
}
export type VoidRequestStatus = RequestStatus<void>;
export type RequestStatus<T> = {
success: true;
data: T;
error?: never;
} | {
success: false;
data?: never;
error?: string;
};
export type IpcEvents = {
[IpcEvent.getPlatform]: {
type: IPCMessageType.request;
consumer: IPCType.Host;
data: {};
response: {
platform: PlatformInfo;
isPackaged: boolean;
crashReport: CrashReport | null;
config: ClientAppConfiguration;
};
};
[IpcEvent.app_terminate]: {
type: IPCMessageType.message;
consumer: IPCType.Host;
data: {
err: string | null;
};
response: never;
};
[IpcEvent.game_save_save]: {
type: IPCMessageType.request;
consumer: IPCType.Host;
data: {
gameData: Record<string, any>;
id: string;
type: SaveType;
preview?: string;
};
response: VoidRequestStatus;
};
[IpcEvent.game_save_read]: {
type: IPCMessageType.request;
consumer: IPCType.Host;
data: {
id: string;
};
response: RequestStatus<SavedGame>;
};
[IpcEvent.game_save_list]: {
type: IPCMessageType.request;
consumer: IPCType.Host;
data: {};
response: RequestStatus<SavedGameMetadata[]>;
};
[IpcEvent.game_save_delete]: {
type: IPCMessageType.request;
consumer: IPCType.Host;
data: {
id: string;
};
response: VoidRequestStatus;
};
};
export declare enum Namespace {
NarraLeaf = "narraleaf"
}