@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
51 lines (50 loc) • 1.84 kB
JavaScript
;
// 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;