@speckle/objectloader2 2.25.1 → 2.25.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/commonjs/helpers/aggregateQueue.d.ts +8 -0
  2. package/dist/commonjs/helpers/aggregateQueue.d.ts.map +1 -0
  3. package/dist/commonjs/helpers/aggregateQueue.js +19 -0
  4. package/dist/commonjs/helpers/aggregateQueue.js.map +1 -0
  5. package/dist/commonjs/helpers/asyncGeneratorQueue.d.ts +8 -0
  6. package/dist/commonjs/helpers/asyncGeneratorQueue.d.ts.map +1 -0
  7. package/dist/commonjs/helpers/asyncGeneratorQueue.js +35 -0
  8. package/dist/commonjs/helpers/asyncGeneratorQueue.js.map +1 -0
  9. package/dist/commonjs/helpers/batchedPool.d.ts +12 -0
  10. package/dist/commonjs/helpers/batchedPool.d.ts.map +1 -0
  11. package/dist/commonjs/helpers/batchedPool.js +45 -0
  12. package/dist/commonjs/helpers/batchedPool.js.map +1 -0
  13. package/dist/commonjs/helpers/batchingQueue.d.ts +14 -0
  14. package/dist/commonjs/helpers/batchingQueue.d.ts.map +1 -0
  15. package/dist/commonjs/helpers/batchingQueue.js +77 -0
  16. package/dist/commonjs/helpers/batchingQueue.js.map +1 -0
  17. package/dist/commonjs/helpers/bufferQueue.d.ts +7 -0
  18. package/dist/commonjs/helpers/bufferQueue.d.ts.map +1 -0
  19. package/dist/commonjs/helpers/bufferQueue.js +13 -0
  20. package/dist/commonjs/helpers/bufferQueue.js.map +1 -0
  21. package/dist/commonjs/helpers/cachePump.d.ts +22 -0
  22. package/dist/commonjs/helpers/cachePump.d.ts.map +1 -0
  23. package/dist/commonjs/helpers/cachePump.js +86 -0
  24. package/dist/commonjs/helpers/cachePump.js.map +1 -0
  25. package/dist/commonjs/helpers/cacheReader.d.ts +14 -0
  26. package/dist/commonjs/helpers/cacheReader.d.ts.map +1 -0
  27. package/dist/commonjs/helpers/cacheReader.js +58 -0
  28. package/dist/commonjs/helpers/cacheReader.js.map +1 -0
  29. package/dist/commonjs/helpers/defermentManager.d.ts +28 -0
  30. package/dist/commonjs/helpers/defermentManager.d.ts.map +1 -0
  31. package/dist/commonjs/helpers/defermentManager.js +150 -0
  32. package/dist/commonjs/helpers/defermentManager.js.map +1 -0
  33. package/dist/commonjs/helpers/deferredBase.d.ts +19 -0
  34. package/dist/commonjs/helpers/deferredBase.d.ts.map +1 -0
  35. package/dist/commonjs/helpers/deferredBase.js +51 -0
  36. package/dist/commonjs/helpers/deferredBase.js.map +1 -0
  37. package/dist/commonjs/helpers/keyedQueue.d.ts +11 -0
  38. package/dist/commonjs/helpers/keyedQueue.d.ts.map +1 -0
  39. package/dist/commonjs/helpers/keyedQueue.js +41 -0
  40. package/dist/commonjs/helpers/keyedQueue.js.map +1 -0
  41. package/dist/commonjs/helpers/memoryPump.d.ts +15 -0
  42. package/dist/commonjs/helpers/memoryPump.d.ts.map +1 -0
  43. package/dist/commonjs/helpers/memoryPump.js +34 -0
  44. package/dist/commonjs/helpers/memoryPump.js.map +1 -0
  45. package/dist/commonjs/helpers/pump.d.ts +8 -0
  46. package/dist/commonjs/helpers/pump.d.ts.map +1 -0
  47. package/dist/commonjs/helpers/pump.js +3 -0
  48. package/dist/commonjs/helpers/pump.js.map +1 -0
  49. package/dist/commonjs/helpers/queue.d.ts +4 -0
  50. package/dist/commonjs/helpers/queue.d.ts.map +1 -0
  51. package/dist/commonjs/helpers/queue.js +3 -0
  52. package/dist/commonjs/helpers/queue.js.map +1 -0
  53. package/dist/commonjs/index.d.ts +3 -0
  54. package/dist/commonjs/index.d.ts.map +1 -0
  55. package/dist/commonjs/index.js +1 -3
  56. package/dist/commonjs/index.js.map +1 -0
  57. package/dist/commonjs/operations/databases/indexedDatabase.d.ts +27 -0
  58. package/dist/commonjs/operations/databases/indexedDatabase.d.ts.map +1 -0
  59. package/dist/commonjs/operations/databases/indexedDatabase.js +98 -0
  60. package/dist/commonjs/operations/databases/indexedDatabase.js.map +1 -0
  61. package/dist/commonjs/operations/databases/memoryDatabase.d.ts +13 -0
  62. package/dist/commonjs/operations/databases/memoryDatabase.d.ts.map +1 -0
  63. package/dist/commonjs/operations/databases/memoryDatabase.js +33 -0
  64. package/dist/commonjs/operations/databases/memoryDatabase.js.map +1 -0
  65. package/dist/commonjs/operations/downloaders/memoryDownloader.d.ts +16 -0
  66. package/dist/commonjs/operations/downloaders/memoryDownloader.d.ts.map +1 -0
  67. package/dist/commonjs/operations/downloaders/memoryDownloader.js +35 -0
  68. package/dist/commonjs/operations/downloaders/memoryDownloader.js.map +1 -0
  69. package/dist/commonjs/operations/downloaders/serverDownloader.d.ts +32 -0
  70. package/dist/commonjs/operations/downloaders/serverDownloader.d.ts.map +1 -0
  71. package/dist/commonjs/operations/downloaders/serverDownloader.js +169 -0
  72. package/dist/commonjs/operations/downloaders/serverDownloader.js.map +1 -0
  73. package/dist/commonjs/operations/interfaces.d.ts +19 -0
  74. package/dist/commonjs/operations/interfaces.d.ts.map +1 -0
  75. package/dist/commonjs/operations/interfaces.js +3 -0
  76. package/dist/commonjs/operations/interfaces.js.map +1 -0
  77. package/dist/commonjs/operations/objectLoader2.d.ts +16 -0
  78. package/dist/commonjs/operations/objectLoader2.d.ts.map +1 -0
  79. package/dist/commonjs/operations/objectLoader2.js +101 -0
  80. package/dist/commonjs/operations/objectLoader2.js.map +1 -0
  81. package/dist/commonjs/operations/objectLoader2Factory.d.ts +25 -0
  82. package/dist/commonjs/operations/objectLoader2Factory.d.ts.map +1 -0
  83. package/dist/commonjs/operations/objectLoader2Factory.js +68 -0
  84. package/dist/commonjs/operations/objectLoader2Factory.js.map +1 -0
  85. package/dist/commonjs/operations/options.d.ts +26 -0
  86. package/dist/commonjs/operations/options.d.ts.map +1 -0
  87. package/dist/commonjs/operations/options.js +3 -0
  88. package/dist/commonjs/operations/options.js.map +1 -0
  89. package/dist/commonjs/operations/traverser.d.ts +19 -0
  90. package/dist/commonjs/operations/traverser.d.ts.map +1 -0
  91. package/dist/commonjs/operations/traverser.js +96 -0
  92. package/dist/commonjs/operations/traverser.js.map +1 -0
  93. package/dist/commonjs/package.json +3 -0
  94. package/dist/commonjs/types/errors.d.ts +21 -0
  95. package/dist/commonjs/types/errors.d.ts.map +1 -0
  96. package/dist/commonjs/types/errors.js +28 -0
  97. package/dist/commonjs/types/errors.js.map +1 -0
  98. package/dist/commonjs/types/types.d.ts +25 -0
  99. package/dist/commonjs/types/types.d.ts.map +1 -0
  100. package/dist/commonjs/types/types.js +39 -0
  101. package/dist/commonjs/types/types.js.map +1 -0
  102. package/dist/esm/helpers/aggregateQueue.d.ts +8 -0
  103. package/dist/esm/helpers/aggregateQueue.d.ts.map +1 -0
  104. package/dist/esm/helpers/aggregateQueue.js +16 -0
  105. package/dist/esm/helpers/aggregateQueue.js.map +1 -0
  106. package/dist/esm/helpers/asyncGeneratorQueue.d.ts +8 -0
  107. package/dist/esm/helpers/asyncGeneratorQueue.d.ts.map +1 -0
  108. package/dist/esm/helpers/asyncGeneratorQueue.js +32 -0
  109. package/dist/esm/helpers/asyncGeneratorQueue.js.map +1 -0
  110. package/dist/esm/helpers/batchedPool.d.ts +12 -0
  111. package/dist/esm/helpers/batchedPool.d.ts.map +1 -0
  112. package/dist/esm/helpers/batchedPool.js +42 -0
  113. package/dist/esm/helpers/batchedPool.js.map +1 -0
  114. package/dist/esm/helpers/batchingQueue.d.ts +14 -0
  115. package/dist/esm/helpers/batchingQueue.d.ts.map +1 -0
  116. package/dist/esm/helpers/batchingQueue.js +71 -0
  117. package/dist/esm/helpers/batchingQueue.js.map +1 -0
  118. package/dist/esm/helpers/bufferQueue.d.ts +7 -0
  119. package/dist/esm/helpers/bufferQueue.d.ts.map +1 -0
  120. package/dist/esm/helpers/bufferQueue.js +10 -0
  121. package/dist/esm/helpers/bufferQueue.js.map +1 -0
  122. package/dist/esm/helpers/cachePump.d.ts +22 -0
  123. package/dist/esm/helpers/cachePump.d.ts.map +1 -0
  124. package/dist/esm/helpers/cachePump.js +79 -0
  125. package/dist/esm/helpers/cachePump.js.map +1 -0
  126. package/dist/esm/helpers/cacheReader.d.ts +14 -0
  127. package/dist/esm/helpers/cacheReader.d.ts.map +1 -0
  128. package/dist/esm/helpers/cacheReader.js +51 -0
  129. package/dist/esm/helpers/cacheReader.js.map +1 -0
  130. package/dist/esm/helpers/defermentManager.d.ts +28 -0
  131. package/dist/esm/helpers/defermentManager.d.ts.map +1 -0
  132. package/dist/esm/helpers/defermentManager.js +146 -0
  133. package/dist/esm/helpers/defermentManager.js.map +1 -0
  134. package/dist/esm/helpers/deferredBase.d.ts +19 -0
  135. package/dist/esm/helpers/deferredBase.d.ts.map +1 -0
  136. package/dist/esm/helpers/deferredBase.js +47 -0
  137. package/dist/esm/helpers/deferredBase.js.map +1 -0
  138. package/dist/esm/helpers/keyedQueue.d.ts +11 -0
  139. package/dist/esm/helpers/keyedQueue.d.ts.map +1 -0
  140. package/dist/esm/helpers/keyedQueue.js +38 -0
  141. package/dist/esm/helpers/keyedQueue.js.map +1 -0
  142. package/dist/esm/helpers/memoryPump.d.ts +15 -0
  143. package/dist/esm/helpers/memoryPump.d.ts.map +1 -0
  144. package/dist/esm/helpers/memoryPump.js +30 -0
  145. package/dist/esm/helpers/memoryPump.js.map +1 -0
  146. package/dist/esm/helpers/pump.d.ts +8 -0
  147. package/dist/esm/helpers/pump.d.ts.map +1 -0
  148. package/dist/esm/helpers/pump.js +2 -0
  149. package/dist/esm/helpers/pump.js.map +1 -0
  150. package/dist/esm/helpers/queue.d.ts +4 -0
  151. package/dist/esm/helpers/queue.d.ts.map +1 -0
  152. package/dist/esm/helpers/queue.js +2 -0
  153. package/dist/esm/helpers/queue.js.map +1 -0
  154. package/dist/esm/index.d.ts +3 -0
  155. package/dist/esm/index.d.ts.map +1 -0
  156. package/dist/esm/index.js +0 -1
  157. package/dist/esm/index.js.map +1 -0
  158. package/dist/esm/operations/databases/indexedDatabase.d.ts +27 -0
  159. package/dist/esm/operations/databases/indexedDatabase.d.ts.map +1 -0
  160. package/dist/esm/operations/databases/indexedDatabase.js +93 -0
  161. package/dist/esm/operations/databases/indexedDatabase.js.map +1 -0
  162. package/dist/esm/operations/databases/memoryDatabase.d.ts +13 -0
  163. package/dist/esm/operations/databases/memoryDatabase.d.ts.map +1 -0
  164. package/dist/esm/operations/databases/memoryDatabase.js +29 -0
  165. package/dist/esm/operations/databases/memoryDatabase.js.map +1 -0
  166. package/dist/esm/operations/downloaders/memoryDownloader.d.ts +16 -0
  167. package/dist/esm/operations/downloaders/memoryDownloader.d.ts.map +1 -0
  168. package/dist/esm/operations/downloaders/memoryDownloader.js +31 -0
  169. package/dist/esm/operations/downloaders/memoryDownloader.js.map +1 -0
  170. package/dist/esm/operations/downloaders/serverDownloader.d.ts +32 -0
  171. package/dist/esm/operations/downloaders/serverDownloader.d.ts.map +1 -0
  172. package/dist/esm/operations/downloaders/serverDownloader.js +163 -0
  173. package/dist/esm/operations/downloaders/serverDownloader.js.map +1 -0
  174. package/dist/esm/operations/interfaces.d.ts +19 -0
  175. package/dist/esm/operations/interfaces.d.ts.map +1 -0
  176. package/dist/esm/operations/interfaces.js +2 -0
  177. package/dist/esm/operations/interfaces.js.map +1 -0
  178. package/dist/esm/operations/objectLoader2.d.ts +16 -0
  179. package/dist/esm/operations/objectLoader2.d.ts.map +1 -0
  180. package/dist/esm/operations/objectLoader2.js +94 -0
  181. package/dist/esm/operations/objectLoader2.js.map +1 -0
  182. package/dist/esm/operations/objectLoader2Factory.d.ts +25 -0
  183. package/dist/esm/operations/objectLoader2Factory.d.ts.map +1 -0
  184. package/dist/esm/operations/objectLoader2Factory.js +61 -0
  185. package/dist/esm/operations/objectLoader2Factory.js.map +1 -0
  186. package/dist/esm/operations/options.d.ts +26 -0
  187. package/dist/esm/operations/options.d.ts.map +1 -0
  188. package/dist/esm/operations/options.js +2 -0
  189. package/dist/esm/operations/options.js.map +1 -0
  190. package/dist/esm/operations/traverser.d.ts +19 -0
  191. package/dist/esm/operations/traverser.d.ts.map +1 -0
  192. package/dist/esm/operations/traverser.js +93 -0
  193. package/dist/esm/operations/traverser.js.map +1 -0
  194. package/dist/esm/package.json +3 -0
  195. package/dist/esm/types/errors.d.ts +21 -0
  196. package/dist/esm/types/errors.d.ts.map +1 -0
  197. package/dist/esm/types/errors.js +23 -0
  198. package/dist/esm/types/errors.js.map +1 -0
  199. package/dist/esm/types/types.d.ts +25 -0
  200. package/dist/esm/types/types.d.ts.map +1 -0
  201. package/dist/esm/types/types.js +33 -0
  202. package/dist/esm/types/types.js.map +1 -0
  203. package/package.json +2 -2
  204. package/src/helpers/cachePump.disposal.spec.ts +3 -1
  205. package/src/helpers/cachePump.spec.ts +2 -1
  206. package/src/helpers/cachePump.ts +9 -1
  207. package/src/helpers/defermentManager.defermentTotals.spec.ts +53 -0
  208. package/src/helpers/defermentManager.ts +20 -1
  209. package/src/index.ts +0 -1
  210. package/src/operations/databases/__snapshots__/indexedDatabase.spec.ts.snap +13 -26
  211. package/src/operations/databases/indexedDatabase.spec.ts +23 -27
  212. package/src/operations/databases/indexedDatabase.ts +1 -25
  213. package/src/operations/databases/memoryDatabase.spec.ts +48 -0
  214. package/src/operations/databases/memoryDatabase.ts +0 -8
  215. package/src/operations/downloaders/__snapshots__/memoryDownloader.spec.ts.snap +12 -0
  216. package/src/operations/downloaders/memoryDownloader.spec.ts +49 -0
  217. package/src/operations/downloaders/memoryDownloader.ts +1 -1
  218. package/src/operations/downloaders/serverDownloader.ts +1 -1
  219. package/src/operations/interfaces.ts +0 -1
  220. package/src/operations/objectLoader2.ts +12 -4
  221. package/src/operations/objectLoader2Factory.ts +40 -18
  222. package/src/test/e2e.spec.ts +4 -2
@@ -0,0 +1,12 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`MemoryDownloader > should add found item to results queue 1`] = `
4
+ Map {
5
+ "id1" => {
6
+ "foo": "foo",
7
+ },
8
+ "id2" => {
9
+ "foo": "bar",
10
+ },
11
+ }
12
+ `;
@@ -0,0 +1,49 @@
1
+ import { describe, it, expect, beforeEach } from 'vitest'
2
+ import { MemoryDownloader } from './memoryDownloader.js'
3
+ import { Base, Item } from '../../types/types.js'
4
+ import Queue from '../../helpers/queue.js'
5
+ import BufferQueue from '../../helpers/bufferQueue.js'
6
+
7
+ const makeBase = (foo: string): Base => ({ foo } as unknown as Base)
8
+
9
+ describe('MemoryDownloader', () => {
10
+ let items: Map<string, Base>
11
+ let downloader: MemoryDownloader
12
+ let results: Queue<Item>
13
+
14
+ beforeEach(() => {
15
+ items = new Map([
16
+ ['id1', makeBase('foo')],
17
+ ['id2', makeBase('bar')]
18
+ ])
19
+ downloader = new MemoryDownloader('id1', items)
20
+ results = new BufferQueue<Item>()
21
+ })
22
+
23
+ it('should download the root item', async () => {
24
+ const item = await downloader.downloadSingle()
25
+ expect(item).toEqual({ baseId: 'id1', base: { foo: 'foo' } })
26
+ })
27
+
28
+ it('should throw if root item is missing', async () => {
29
+ const missingDownloader = new MemoryDownloader('missing', items)
30
+ await expect(missingDownloader.downloadSingle()).rejects.toThrow(
31
+ 'Method not implemented.'
32
+ )
33
+ })
34
+
35
+ it('should add found item to results queue', () => {
36
+ downloader.initializePool({ results, total: 2 })
37
+ downloader.add('id2')
38
+ expect(items).toMatchSnapshot()
39
+ })
40
+
41
+ it('should throw if added item is missing', () => {
42
+ downloader.initializePool({ results, total: 2 })
43
+ expect(() => downloader.add('missing')).toThrow()
44
+ })
45
+
46
+ it('disposeAsync should resolve', async () => {
47
+ await expect(downloader.disposeAsync()).resolves.not.toThrow()
48
+ })
49
+ })
@@ -23,7 +23,7 @@ export class MemoryDownloader implements Downloader {
23
23
  if (root) {
24
24
  return Promise.resolve({ baseId: this.#rootId, base: root })
25
25
  }
26
- throw new Error('Method not implemented.')
26
+ return Promise.reject(new Error('Method not implemented.'))
27
27
  }
28
28
  disposeAsync(): Promise<void> {
29
29
  return Promise.resolve()
@@ -53,7 +53,7 @@ export default class ServerDownloader implements Downloader {
53
53
  return [total]
54
54
  }
55
55
 
56
- return [10000, 30000, 10000, 1000]
56
+ return [10000, 25000, 10000, 1000]
57
57
  }
58
58
 
59
59
  initializePool(params: {
@@ -13,7 +13,6 @@ export interface Downloader extends Queue<string> {
13
13
 
14
14
  export interface Database {
15
15
  getAll(keys: string[]): Promise<(Item | undefined)[]>
16
- getItem(params: { id: string }): Promise<Item | undefined>
17
16
  cacheSaveBatch(params: { batch: Item[] }): Promise<void>
18
17
  disposeAsync(): Promise<void>
19
18
  }
@@ -41,7 +41,7 @@ export class ObjectLoader2 {
41
41
  this.#database = options.database
42
42
  this.#deferments = new DefermentManager({
43
43
  maxSizeInMb: 2_000, // 2 GBs
44
- ttlms: 5_000, // 5 seconds
44
+ ttlms: 15_000, // 15 seconds
45
45
  logger: this.#logger
46
46
  })
47
47
  this.#cache = new CacheReader(this.#database, this.#deferments, cacheOptions)
@@ -55,13 +55,17 @@ export class ObjectLoader2 {
55
55
  }
56
56
 
57
57
  async disposeAsync(): Promise<void> {
58
- await Promise.all([this.#downloader.disposeAsync(), this.#cache.disposeAsync()])
58
+ await Promise.all([
59
+ this.#downloader.disposeAsync(),
60
+ this.#cache.disposeAsync(),
61
+ this.#pump.disposeAsync()
62
+ ])
59
63
  this.#deferments.dispose()
60
64
  }
61
65
 
62
66
  async getRootObject(): Promise<Item | undefined> {
63
67
  if (!this.#root) {
64
- this.#root = await this.#database.getItem({ id: this.#rootId })
68
+ this.#root = (await this.#database.getAll([this.#rootId]))[0]
65
69
  if (!this.#root) {
66
70
  this.#root = await this.#downloader.downloadSingle()
67
71
  }
@@ -90,7 +94,11 @@ export class ObjectLoader2 {
90
94
  yield rootItem.base
91
95
  if (!rootItem.base.__closure) return
92
96
 
93
- const children = Object.keys(rootItem.base.__closure)
97
+ //sort the closures by their values descending
98
+ const sortedClosures = Object.entries(rootItem.base.__closure).sort(
99
+ (a, b) => b[1] - a[1]
100
+ )
101
+ const children = sortedClosures.map((x) => x[0])
94
102
  const total = children.length
95
103
  this.#downloader.initializePool({
96
104
  results: new AggregateQueue(this.#gathered, this.#pump),
@@ -5,6 +5,14 @@ import { MemoryDownloader } from './downloaders/memoryDownloader.js'
5
5
  import ServerDownloader from './downloaders/serverDownloader.js'
6
6
  import { ObjectLoader2 } from './objectLoader2.js'
7
7
 
8
+ export interface ObjectLoader2FactoryOptions {
9
+ useMemoryCache?: boolean
10
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
11
+ keyRange?: { bound: Function; lowerBound: Function; upperBound: Function }
12
+ indexedDB?: IDBFactory
13
+ logger?: CustomLogger
14
+ }
15
+
8
16
  export class ObjectLoader2Factory {
9
17
  static createFromObjects(objects: Base[]): ObjectLoader2 {
10
18
  const root = objects[0]
@@ -31,26 +39,40 @@ export class ObjectLoader2Factory {
31
39
  objectId: string
32
40
  token?: string
33
41
  headers?: Headers
34
- // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
35
- keyRange?: { bound: Function; lowerBound: Function; upperBound: Function }
36
- indexedDB?: IDBFactory
37
- logger?: CustomLogger
42
+ options?: ObjectLoader2FactoryOptions
38
43
  }): ObjectLoader2 {
39
- const loader = new ObjectLoader2({
40
- rootId: params.objectId,
41
- downloader: new ServerDownloader({
42
- serverUrl: params.serverUrl,
43
- streamId: params.streamId,
44
- objectId: params.objectId,
45
- token: params.token,
46
- headers: params.headers
47
- }),
48
- database: new IndexedDatabase({
49
- logger: params.logger,
50
- indexedDB: params.indexedDB,
51
- keyRange: params.keyRange
44
+ let loader: ObjectLoader2
45
+ if (params.options?.useMemoryCache) {
46
+ loader = new ObjectLoader2({
47
+ rootId: params.objectId,
48
+ downloader: new ServerDownloader({
49
+ serverUrl: params.serverUrl,
50
+ streamId: params.streamId,
51
+ objectId: params.objectId,
52
+ token: params.token,
53
+ headers: params.headers
54
+ }),
55
+ database: new MemoryDatabase({
56
+ items: new Map<string, Base>()
57
+ })
52
58
  })
53
- })
59
+ } else {
60
+ loader = new ObjectLoader2({
61
+ rootId: params.objectId,
62
+ downloader: new ServerDownloader({
63
+ serverUrl: params.serverUrl,
64
+ streamId: params.streamId,
65
+ objectId: params.objectId,
66
+ token: params.token,
67
+ headers: params.headers
68
+ }),
69
+ database: new IndexedDatabase({
70
+ logger: params.options?.logger,
71
+ indexedDB: params.options?.indexedDB,
72
+ keyRange: params.options?.keyRange
73
+ })
74
+ })
75
+ }
54
76
  return loader
55
77
  }
56
78
  }
@@ -14,8 +14,10 @@ describe('e2e', () => {
14
14
  serverUrl: 'https://app.speckle.systems',
15
15
  streamId: 'da9e320dad',
16
16
  objectId: '31d10c0cea569a1e26809658ed27e281',
17
- indexedDB: new IDBFactory(),
18
- keyRange: IDBKeyRange
17
+ options: {
18
+ indexedDB: new IDBFactory(),
19
+ keyRange: IDBKeyRange
20
+ }
19
21
  })
20
22
 
21
23
  const getObjectPromise = loader.getObject({