UNPKG

@gdquest/gd-exercise

Version:

Core package that handles logic for the GDExercise project.

100 lines 4.52 kB
import { type GdExerciseFile, type GdExerciseLog, type GdProjectSettings } from "./utils.mts"; export declare const GdMessageTypeContent: { readonly READY: "READY"; readonly INIT: "INIT"; readonly DONE: "DONE"; readonly LOAD_PLAYER_PROJECT_FILE: "LOAD_PLAYER_PROJECT_FILE"; readonly LOAD_PLAYER_PROJECT_DIRECTORY: "LOAD_PLAYER_PROJECT_DIRECTORY"; readonly LOAD_PLAYER_PROJECT_SETTINGS: "LOAD_PLAYER_PROJECT_SETTINGS"; readonly LOAD_PLAYER_ENGINE: "LOAD_PLAYER_ENGINE"; readonly PLAYER_PROGRESS: "PLAYER_PROGRESS"; readonly SET_PLAYER_SCENE_TO_LOAD_PATH: "SET_PLAYER_SCENE_TO_LOAD_PATH"; readonly LOAD_CODE_EDITOR_FILE: "LOAD_CODE_EDITOR_FILE"; readonly FOCUS_CODE_EDITOR_FILE: "FOCUS_CODE_EDITOR_FILE"; readonly SCRIPT_UPDATED: "SCRIPT_UPDATED"; readonly SCRIPT_ERROR: "SCRIPT_ERROR"; readonly SCRIPT_LOG: "SCRIPT_LOG"; }; export type GdMessageType = keyof typeof GdMessageTypeContent; export interface GdMessageSource { [GdMessageTypeContent.READY]: GdMessageReady; [GdMessageTypeContent.INIT]: GdMessageInit; [GdMessageTypeContent.DONE]: GdMessageDone; [GdMessageTypeContent.LOAD_PLAYER_PROJECT_FILE]: GdMessageLoadPlayerProjectFile; [GdMessageTypeContent.LOAD_PLAYER_PROJECT_DIRECTORY]: GdMessageLoadPlayerProjectDirectory; [GdMessageTypeContent.LOAD_PLAYER_PROJECT_SETTINGS]: GdMessageLoadPlayerProjectSettings; [GdMessageTypeContent.LOAD_PLAYER_ENGINE]: GdMessageLoadPlayerEngine; [GdMessageTypeContent.PLAYER_PROGRESS]: GdMessagePlayerProgress; [GdMessageTypeContent.SET_PLAYER_SCENE_TO_LOAD_PATH]: GdMessageSetPlayerSceneToLoadPath; [GdMessageTypeContent.LOAD_CODE_EDITOR_FILE]: GdMessageLoadCodeEditorFile; [GdMessageTypeContent.FOCUS_CODE_EDITOR_FILE]: GdMessageFocusCodeEditorFile; [GdMessageTypeContent.SCRIPT_UPDATED]: GdMessageScriptUpdated; [GdMessageTypeContent.SCRIPT_ERROR]: GdMessageScriptError; [GdMessageTypeContent.SCRIPT_LOG]: GdMessageScriptLog; } export interface GdMessage { type: keyof GdMessageSource; } export interface GdMessageReady extends GdMessage { type: typeof GdMessageTypeContent.READY; origin: "CODE" | "GDEDITOR" | "GDPLAYER"; } export interface GdMessageInit extends GdMessage { type: typeof GdMessageTypeContent.INIT; } export interface GdMessageDone extends GdMessage { type: typeof GdMessageTypeContent.DONE; of: keyof GdMessageSource; } export interface GdMessageLoadPlayerProjectFile extends GdMessage { type: typeof GdMessageTypeContent.LOAD_PLAYER_PROJECT_FILE; path: string; data: ArrayBuffer; } export interface GdMessageLoadPlayerProjectDirectory extends GdMessage { type: typeof GdMessageTypeContent.LOAD_PLAYER_PROJECT_DIRECTORY; path: string; } export interface GdMessageLoadPlayerProjectSettings extends GdMessage { type: typeof GdMessageTypeContent.LOAD_PLAYER_PROJECT_SETTINGS; settings: GdProjectSettings; } export interface GdMessageLoadPlayerEngine extends GdMessage { type: typeof GdMessageTypeContent.LOAD_PLAYER_ENGINE; } export interface GdMessagePlayerProgress extends GdMessage { type: typeof GdMessageTypeContent.PLAYER_PROGRESS; current: number; total: number; status: "PROGRESS" | "INDETERMINATE" | "READY"; } export interface GdMessageSetPlayerSceneToLoadPath extends GdMessage { type: typeof GdMessageTypeContent.SET_PLAYER_SCENE_TO_LOAD_PATH; scenePath: string; } export interface GdMessageLoadCodeEditorFile extends GdMessage { type: typeof GdMessageTypeContent.LOAD_CODE_EDITOR_FILE; file: GdExerciseFile; } export interface GdMessageFocusCodeEditorFile extends GdMessage { type: typeof GdMessageTypeContent.FOCUS_CODE_EDITOR_FILE; path: string; } export interface GdMessageScriptUpdated extends GdMessage { type: typeof GdMessageTypeContent.SCRIPT_UPDATED; file: GdExerciseFile; } export interface GdMessageScriptError extends GdMessage { type: typeof GdMessageTypeContent.SCRIPT_ERROR; error: string; } export interface GdMessageScriptLog extends GdMessage { type: typeof GdMessageTypeContent.SCRIPT_LOG; log: GdExerciseLog; } export declare function isGdMessage<T extends keyof GdMessageSource>(message: GdMessage, type: T): message is GdMessageSource[T]; export interface WaitForDoneOptions { timeout?: number; } export declare function waitForGdMessageDone<T extends keyof GdMessageSource>(channel: BroadcastChannel, type: T, options?: WaitForDoneOptions): Promise<void>; //# sourceMappingURL=message.d.mts.map