@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
50 lines (49 loc) • 2.93 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProjectWorkerMessageType = exports.StorageTransferMode = void 0;
/**
* Describes how storage is transferred to the worker.
*/
var StorageTransferMode;
(function (StorageTransferMode) {
/** Use BrowserStorage pointer - worker hydrates from same IndexedDB */
StorageTransferMode["browserStoragePointer"] = "browserStoragePointer";
/** Use serialized in-memory storage as JSON */
StorageTransferMode["serializedStorage"] = "serializedStorage";
})(StorageTransferMode || (exports.StorageTransferMode = StorageTransferMode = {}));
/**
* Message types for worker communication.
*
* The new streaming architecture uses a persistent worker with cached project state:
* - hydrateProject: Preload and cache a project in the worker
* - disposeProject: Clean up cached project (called on project switch or idle timeout)
* - processRelationsAndGenerateInfoSet: Main entry point - streams results as they complete:
* 1. relationsComplete - sent immediately after relations calculated (unblocks waiters)
* 2. validationComplete - sent after validation finishes
* 3. Thumbnails are enqueued to low-priority queue (silent, no progress to user)
* - cancelThumbnails: Stop pending thumbnail generation (e.g., on project switch)
*/
var ProjectWorkerMessageType;
(function (ProjectWorkerMessageType) {
// Main thread -> Worker
ProjectWorkerMessageType["hydrateProject"] = "hydrateProject";
ProjectWorkerMessageType["disposeProject"] = "disposeProject";
ProjectWorkerMessageType["generateInfoSet"] = "generateInfoSet";
ProjectWorkerMessageType["processRelationsAndGenerateInfoSet"] = "processRelationsAndGenerateInfoSet";
ProjectWorkerMessageType["cancelThumbnails"] = "cancelThumbnails";
ProjectWorkerMessageType["cancel"] = "cancel";
// Worker -> Main thread (streamed responses)
ProjectWorkerMessageType["hydrateComplete"] = "hydrateComplete";
ProjectWorkerMessageType["projectDisposed"] = "projectDisposed";
ProjectWorkerMessageType["relationsComplete"] = "relationsComplete";
ProjectWorkerMessageType["validationComplete"] = "validationComplete";
ProjectWorkerMessageType["thumbnailBatchComplete"] = "thumbnailBatchComplete";
ProjectWorkerMessageType["thumbnailsFinished"] = "thumbnailsFinished";
// Legacy combined result (deprecated - kept for backward compatibility during transition)
ProjectWorkerMessageType["generateInfoSetResult"] = "generateInfoSetResult";
ProjectWorkerMessageType["processRelationsAndGenerateInfoSetResult"] = "processRelationsAndGenerateInfoSetResult";
ProjectWorkerMessageType["progress"] = "progress";
ProjectWorkerMessageType["error"] = "error";
})(ProjectWorkerMessageType || (exports.ProjectWorkerMessageType = ProjectWorkerMessageType = {}));