fix(@vates/task): ensure compatibility between library versions (#8347)

This commit is contained in:
Bastien Nollet
2025-02-19 17:44:34 +01:00
committed by GitHub
parent 9723075253
commit fb02bf07f6
2 changed files with 16 additions and 12 deletions

View File

@@ -29,7 +29,7 @@ class Task {
static get abortSignal() {
const task = getTask()
if (task !== undefined) {
return task.#abortController.signal
return task._abortController.signal
}
}
@@ -65,8 +65,11 @@ class Task {
}
}
#abortController = new AbortController()
#onProgress
// These two properties should not be used outside the class
//
// To ensure compatibility between multiple versions of this lib, they are kept public for now
_abortController = new AbortController()
_onProgress
get id() {
return (this.id = Math.random().toString(36).slice(2))
@@ -86,23 +89,23 @@ class Task {
this.#startData = { properties }
if (onProgress !== undefined) {
this.#onProgress = onProgress
this._onProgress = onProgress
} else {
const parent = getTask()
if (parent !== undefined) {
const { signal } = parent.#abortController
const { signal } = parent._abortController
signal.addEventListener('abort', () => {
this.#abortController.abort(signal.reason)
this._abortController.abort(signal.reason)
})
this.#onProgress = parent.#onProgress
this._onProgress = parent._onProgress
this.#startData.parentId = parent.id
} else {
this.#onProgress = noop
this._onProgress = noop
}
}
const { signal } = this.#abortController
const { signal } = this._abortController
signal.addEventListener('abort', () => {
if (this.status === PENDING) {
this.#maybeStart()
@@ -117,7 +120,7 @@ class Task {
}
abort(reason) {
this.#abortController.abort(reason)
this._abortController.abort(reason)
}
#emit(type, data) {
@@ -126,7 +129,7 @@ class Task {
data.id = this.id
data.timestamp = Date.now()
data.type = type
this.#onProgress(data)
this._onProgress(data)
}
#end(status, result) {
@@ -134,7 +137,7 @@ class Task {
assert.equal(this.#running, false)
this.#emit('end', { status, result })
this.#onProgress = alreadyEnded
this._onProgress = alreadyEnded
this.#status = status
}