UNPKG

@speckle/objectloader2

Version:

This is an updated objectloader for the Speckle viewer written in typescript

74 lines 3.13 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectLoader2Factory = void 0; const functions_js_1 = require("../types/functions.js"); const objectLoader2_js_1 = require("./objectLoader2.js"); const indexedDatabase_js_1 = __importDefault(require("./stages/indexedDatabase.js")); const memoryDatabase_js_1 = require("./stages/memory/memoryDatabase.js"); const memoryDownloader_js_1 = require("./stages/memory/memoryDownloader.js"); const serverDownloader_js_1 = __importDefault(require("./stages/serverDownloader.js")); class ObjectLoader2Factory { static createFromObjects(objects) { const root = objects[0]; const records = new Map(); objects.forEach((element) => { records.set(element.id, element); }); const loader = new objectLoader2_js_1.ObjectLoader2({ rootId: root.id, database: new memoryDatabase_js_1.MemoryDatabase({ items: records }), downloader: new memoryDownloader_js_1.MemoryDownloader(root.id, records) }); return loader; } static createFromJSON(json) { const jsonObj = JSON.parse(json); return this.createFromObjects(jsonObj); } static createFromUrl(params) { const log = ObjectLoader2Factory.getLogger(params.options?.logger); let database; if ((0, functions_js_1.getFeatureFlag)(functions_js_1.ObjectLoader2Flags.DEBUG) === 'true') { this.logger('Using DEBUG mode for ObjectLoader2Factory'); } if ((0, functions_js_1.getFeatureFlag)(functions_js_1.ObjectLoader2Flags.USE_CACHE) === 'true') { database = new indexedDatabase_js_1.default({ indexedDB: params.options?.indexedDB, keyRange: params.options?.keyRange }); } else { database = new memoryDatabase_js_1.MemoryDatabase({ items: new Map() }); this.logger('Disabled persistent caching for ObjectLoader2. Using MemoryDatabase'); } const loader = new objectLoader2_js_1.ObjectLoader2({ rootId: params.objectId, downloader: new serverDownloader_js_1.default({ serverUrl: params.serverUrl, streamId: params.streamId, objectId: params.objectId, token: params.token, headers: params.headers }), database, logger: log }); return loader; } static getLogger(providedLogger) { if ((0, functions_js_1.getFeatureFlag)(functions_js_1.ObjectLoader2Flags.DEBUG) === 'true') { return providedLogger || this.logger; } return providedLogger; } static logger = (m, ...optionalParams) => { console.log(`[debug] ${m}`, ...optionalParams); }; } exports.ObjectLoader2Factory = ObjectLoader2Factory; //# sourceMappingURL=objectLoader2Factory.js.map