UNPKG

@speckle/objectloader2

Version:

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

68 lines 2.8 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 indexedDatabase_js_1 = __importDefault(require("./databases/indexedDatabase.js")); const memoryDatabase_js_1 = require("./databases/memoryDatabase.js"); const memoryDownloader_js_1 = require("./downloaders/memoryDownloader.js"); const serverDownloader_js_1 = __importDefault(require("./downloaders/serverDownloader.js")); const objectLoader2_js_1 = require("./objectLoader2.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) { let loader; if (params.options?.useMemoryCache) { 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: new memoryDatabase_js_1.MemoryDatabase({ items: new Map() }) }); } else { 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: new indexedDatabase_js_1.default({ logger: params.options?.logger, indexedDB: params.options?.indexedDB, keyRange: params.options?.keyRange }) }); } return loader; } } exports.ObjectLoader2Factory = ObjectLoader2Factory; //# sourceMappingURL=objectLoader2Factory.js.map