All BatchedQueues should drain when disposed (also adds query string for output: "debug=true") (#5098)
* ensure disposal is correct * add tests for disposal of batching queue * fixes for draining disposal * Update packages/objectloader2/src/queues/batchingQueue.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix comment * fix tests and build * add query string inspection of debug parameter * Update packages/objectloader2/src/queues/batchingQueue.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update packages/objectloader2/src/core/objectLoader2Factory.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix test * fix AI * export getQueryParameter to avoid dup code. Sandbox uses it too * add tests for functions * prettier fix --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -3,7 +3,11 @@ import { Loader, LoaderEvent } from '../Loader.js'
|
||||
import { SpeckleGeometryConverter } from './SpeckleGeometryConverter.js'
|
||||
import { WorldTree, type SpeckleObject } from '../../../index.js'
|
||||
import Logger from '../../utils/Logger.js'
|
||||
import { ObjectLoader2, ObjectLoader2Factory } from '@speckle/objectloader2'
|
||||
import {
|
||||
getQueryParameter,
|
||||
ObjectLoader2,
|
||||
ObjectLoader2Factory
|
||||
} from '@speckle/objectloader2'
|
||||
import { TIME_MS } from '@speckle/shared'
|
||||
|
||||
export class SpeckleLoader extends Loader {
|
||||
@@ -99,6 +103,7 @@ export class SpeckleLoader extends Loader {
|
||||
const total = await this.loader.getTotalObjectCount()
|
||||
let traversals = 0
|
||||
let firstObjectPromise = null
|
||||
this.progressListen()
|
||||
|
||||
Logger.warn('Downloading object ', this.resource)
|
||||
|
||||
@@ -186,6 +191,31 @@ export class SpeckleLoader extends Loader {
|
||||
return p
|
||||
}
|
||||
|
||||
private progressListen(): void {
|
||||
if (getQueryParameter('debug', 'false') !== 'true') {
|
||||
return
|
||||
}
|
||||
|
||||
let dataProgress = 0
|
||||
this.on(LoaderEvent.LoadProgress, (data) => {
|
||||
const p = Math.floor(data.progress * 100)
|
||||
if (p > dataProgress) {
|
||||
Logger.log(`[debug] Loading ${p}%`)
|
||||
dataProgress = p
|
||||
}
|
||||
})
|
||||
this.on(LoaderEvent.Traversed, (data) => {
|
||||
if (data.count % 500 === 0) {
|
||||
Logger.log(`[debug] Traversed ${data.count}`)
|
||||
}
|
||||
})
|
||||
this.on(LoaderEvent.Converted, (data) => {
|
||||
if (data.count % 500 === 0) {
|
||||
Logger.log(`[debug] Converted ${data.count}`)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.isCancelled = true
|
||||
this.isFinished = false
|
||||
|
||||
Reference in New Issue
Block a user