diff options
Diffstat (limited to 'vanilla/node_modules/undici/lib/web/websocket/stream/websocketerror.js')
| -rw-r--r-- | vanilla/node_modules/undici/lib/web/websocket/stream/websocketerror.js | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/vanilla/node_modules/undici/lib/web/websocket/stream/websocketerror.js b/vanilla/node_modules/undici/lib/web/websocket/stream/websocketerror.js deleted file mode 100644 index a34c521..0000000 --- a/vanilla/node_modules/undici/lib/web/websocket/stream/websocketerror.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict' - -const { webidl } = require('../../webidl') -const { validateCloseCodeAndReason } = require('../util') -const { kConstruct } = require('../../../core/symbols') -const { kEnumerableProperty } = require('../../../core/util') - -function createInheritableDOMException () { - // https://github.com/nodejs/node/issues/59677 - class Test extends DOMException { - get reason () { - return '' - } - } - - if (new Test().reason !== undefined) { - return DOMException - } - - return new Proxy(DOMException, { - construct (target, args, newTarget) { - const instance = Reflect.construct(target, args, target) - Object.setPrototypeOf(instance, newTarget.prototype) - return instance - } - }) -} - -class WebSocketError extends createInheritableDOMException() { - #closeCode - #reason - - constructor (message = '', init = undefined) { - message = webidl.converters.DOMString(message, 'WebSocketError', 'message') - - // 1. Set this 's name to " WebSocketError ". - // 2. Set this 's message to message . - super(message, 'WebSocketError') - - if (init === kConstruct) { - return - } else if (init !== null) { - init = webidl.converters.WebSocketCloseInfo(init) - } - - // 3. Let code be init [" closeCode "] if it exists , or null otherwise. - let code = init.closeCode ?? null - - // 4. Let reason be init [" reason "] if it exists , or the empty string otherwise. - const reason = init.reason ?? '' - - // 5. Validate close code and reason with code and reason . - validateCloseCodeAndReason(code, reason) - - // 6. If reason is non-empty, but code is not set, then set code to 1000 ("Normal Closure"). - if (reason.length !== 0 && code === null) { - code = 1000 - } - - // 7. Set this 's closeCode to code . - this.#closeCode = code - - // 8. Set this 's reason to reason . - this.#reason = reason - } - - get closeCode () { - return this.#closeCode - } - - get reason () { - return this.#reason - } - - /** - * @param {string} message - * @param {number|null} code - * @param {string} reason - */ - static createUnvalidatedWebSocketError (message, code, reason) { - const error = new WebSocketError(message, kConstruct) - error.#closeCode = code - error.#reason = reason - return error - } -} - -const { createUnvalidatedWebSocketError } = WebSocketError -delete WebSocketError.createUnvalidatedWebSocketError - -Object.defineProperties(WebSocketError.prototype, { - closeCode: kEnumerableProperty, - reason: kEnumerableProperty, - [Symbol.toStringTag]: { - value: 'WebSocketError', - writable: false, - enumerable: false, - configurable: true - } -}) - -webidl.is.WebSocketError = webidl.util.MakeTypeAssertion(WebSocketError) - -module.exports = { WebSocketError, createUnvalidatedWebSocketError } |
