UNPKG

@speckle/objectloader2

Version:

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

61 lines 2.27 kB
import IndexedDatabase from './databases/indexedDatabase.js'; import { MemoryDatabase } from './databases/memoryDatabase.js'; import { MemoryDownloader } from './downloaders/memoryDownloader.js'; import ServerDownloader from './downloaders/serverDownloader.js'; import { ObjectLoader2 } from './objectLoader2.js'; export 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({ rootId: root.id, database: new MemoryDatabase({ items: records }), downloader: new 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({ rootId: params.objectId, downloader: new ServerDownloader({ serverUrl: params.serverUrl, streamId: params.streamId, objectId: params.objectId, token: params.token, headers: params.headers }), database: new MemoryDatabase({ items: new Map() }) }); } else { loader = new ObjectLoader2({ rootId: params.objectId, downloader: new ServerDownloader({ serverUrl: params.serverUrl, streamId: params.streamId, objectId: params.objectId, token: params.token, headers: params.headers }), database: new IndexedDatabase({ logger: params.options?.logger, indexedDB: params.options?.indexedDB, keyRange: params.options?.keyRange }) }); } return loader; } } //# sourceMappingURL=objectLoader2Factory.js.map