narraleaf
Version:
Create your visual novel with Electron and React
44 lines (43 loc) • 1.42 kB
TypeScript
import { RendererProject } from "../project/renderer/rendererProject";
import { ElectronDevServerToken } from "../dev/electron";
import { Server, WSEventType } from "../../utils/nodejs/websocket";
import { AppMeta } from "../../main/electron/app/app";
export type DevServerToken = {
close(): Promise<void>;
};
export type ClosableToken = {
close(): Promise<void>;
};
export declare enum DevServerEvent {
RequestPageRefresh = "narraleaf_dev:request_page_refresh",
RequestMainQuit = "narraleaf_dev:request_main_quit",
FetchMetadata = "narraleaf_dev:fetch_metadata"
}
export type DevServerEvents = {
[DevServerEvent.RequestPageRefresh]: {
type: WSEventType.Message;
data: {};
};
[DevServerEvent.RequestMainQuit]: {
type: WSEventType.Message;
data: {};
};
[DevServerEvent.FetchMetadata]: {
type: WSEventType.Message;
data: {};
response: AppMeta;
};
};
export declare class DevServer {
renderer: RendererProject;
electronToken: ElectronDevServerToken | null;
mainToken: ClosableToken | null;
rendererToken: ClosableToken | null;
wsServer: Server<DevServerEvents> | null;
constructor(renderer: RendererProject);
start(): Promise<void>;
stop(): Promise<void>;
restart(): Promise<void>;
onTerminate(process: NodeJS.Process, callback?: () => void): Promise<void>;
listen(): void;
}