UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

51 lines (50 loc) 1.84 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const BrowserFolder_1 = __importDefault(require("./BrowserFolder")); const StorageBase_1 = __importDefault(require("./StorageBase")); const localforage_1 = __importDefault(require("localforage")); class BrowserStorage extends StorageBase_1.default { rootFolder; static isConfigured = false; /** * The name used to construct this storage instance. * Used for BrowserStorage pointer mode when transferring to web workers. */ storageName; static ensureConfigured() { if (!BrowserStorage.isConfigured) { localforage_1.default.config({ name: "Minecraft Creator Tools", storeName: "minecraft_creator_tools", version: 1.0, // Use IndexedDB driver - this works in both main thread and web workers // (localStorage requires window object which is not available in workers) driver: localforage_1.default.INDEXEDDB, }); BrowserStorage.isConfigured = true; } } constructor(name) { super(); // Store the original name for worker pointer mode this.storageName = name; if (name == null) { name = ""; } else { name = "." + name; } BrowserStorage.ensureConfigured(); this.rootFolder = new BrowserFolder_1.default(this, null, "fs" + name, "root"); } async getAvailable() { this.available = true; return this.available; } } exports.default = BrowserStorage;