73 lines
1.5 KiB
Plaintext
73 lines
1.5 KiB
Plaintext
'use strict'
|
|
|
|
const assert = require('node:assert')
|
|
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
module.exports = class DecoratorHandler {
|
|
#handler
|
|
#onCompleteCalled = false
|
|
#onErrorCalled = false
|
|
#onResponseStartCalled = false
|
|
|
|
constructor (handler) {
|
|
if (typeof handler !== 'object' || handler === null) {
|
|
throw new TypeError('handler must be an object')
|
|
}
|
|
this.#handler = handler
|
|
}
|
|
|
|
onRequestStart (...args) {
|
|
this.#handler.onRequestStart?.(...args)
|
|
}
|
|
|
|
onRequestUpgrade (...args) {
|
|
assert(!this.#onCompleteCalled)
|
|
assert(!this.#onErrorCalled)
|
|
|
|
return this.#handler.onRequestUpgrade?.(...args)
|
|
}
|
|
|
|
onResponseStart (...args) {
|
|
assert(!this.#onCompleteCalled)
|
|
assert(!this.#onErrorCalled)
|
|
assert(!this.#onResponseStartCalled)
|
|
|
|
this.#onResponseStartCalled = true
|
|
|
|
return this.#handler.onResponseStart?.(...args)
|
|
}
|
|
|
|
onResponseData (...args) {
|
|
assert(!this.#onCompleteCalled)
|
|
assert(!this.#onErrorCalled)
|
|
|
|
return this.#handler.onResponseData?.(...args)
|
|
}
|
|
|
|
onResponseEnd (...args) {
|
|
assert(!this.#onCompleteCalled)
|
|
assert(!this.#onErrorCalled)
|
|
|
|
this.#onCompleteCalled = true
|
|
return this.#handler.onResponseEnd?.(...args)
|
|
}
|
|
|
|
onResponseError (...args) {
|
|
this.#onErrorCalled = true
|
|
return this.#handler.onResponseError?.(...args)
|
|
}
|
|
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
onBodySent (...args) {
|
|
return this.#handler.onBodySent?.(...args)
|
|
}
|
|
|
|
onRequestSent (...args) {
|
|
return this.#handler.onRequestSent?.(...args)
|
|
}
|
|
}
|