File Explorer

/var/lang/lib/node_modules/npm/node_modules/undici/lib/web/websocket

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

events.js7.2 KB · 330 lines
'use strict' const { webidl } = require('../fetch/webidl')const { kEnumerableProperty } = require('../../core/util')const { kConstruct } = require('../../core/symbols')const { MessagePort } = require('node:worker_threads') /** * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent */class MessageEvent extends Event {  #eventInit   constructor (type, eventInitDict = {}) {    if (type === kConstruct) {      super(arguments[1], arguments[2])      webidl.util.markAsUncloneable(this)      return    }     const prefix = 'MessageEvent constructor'    webidl.argumentLengthCheck(arguments, 1, prefix)     type = webidl.converters.DOMString(type, prefix, 'type')    eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, 'eventInitDict')     super(type, eventInitDict)     this.#eventInit = eventInitDict    webidl.util.markAsUncloneable(this)  }   get data () {    webidl.brandCheck(this, MessageEvent)     return this.#eventInit.data  }   get origin () {    webidl.brandCheck(this, MessageEvent)     return this.#eventInit.origin  }   get lastEventId () {    webidl.brandCheck(this, MessageEvent)     return this.#eventInit.lastEventId  }   get source () {    webidl.brandCheck(this, MessageEvent)     return this.#eventInit.source  }   get ports () {    webidl.brandCheck(this, MessageEvent)     if (!Object.isFrozen(this.#eventInit.ports)) {      Object.freeze(this.#eventInit.ports)    }     return this.#eventInit.ports  }   initMessageEvent (    type,    bubbles = false,    cancelable = false,    data = null,    origin = '',    lastEventId = '',    source = null,    ports = []  ) {    webidl.brandCheck(this, MessageEvent)     webidl.argumentLengthCheck(arguments, 1, 'MessageEvent.initMessageEvent')     return new MessageEvent(type, {      bubbles, cancelable, data, origin, lastEventId, source, ports    })  }   static createFastMessageEvent (type, init) {    const messageEvent = new MessageEvent(kConstruct, type, init)    messageEvent.#eventInit = init    messageEvent.#eventInit.data ??= null    messageEvent.#eventInit.origin ??= ''    messageEvent.#eventInit.lastEventId ??= ''    messageEvent.#eventInit.source ??= null    messageEvent.#eventInit.ports ??= []    return messageEvent  }} const { createFastMessageEvent } = MessageEventdelete MessageEvent.createFastMessageEvent /** * @see https://websockets.spec.whatwg.org/#the-closeevent-interface */class CloseEvent extends Event {  #eventInit   constructor (type, eventInitDict = {}) {    const prefix = 'CloseEvent constructor'    webidl.argumentLengthCheck(arguments, 1, prefix)     type = webidl.converters.DOMString(type, prefix, 'type')    eventInitDict = webidl.converters.CloseEventInit(eventInitDict)     super(type, eventInitDict)     this.#eventInit = eventInitDict    webidl.util.markAsUncloneable(this)  }   get wasClean () {    webidl.brandCheck(this, CloseEvent)     return this.#eventInit.wasClean  }   get code () {    webidl.brandCheck(this, CloseEvent)     return this.#eventInit.code  }   get reason () {    webidl.brandCheck(this, CloseEvent)     return this.#eventInit.reason  }} // https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interfaceclass ErrorEvent extends Event {  #eventInit   constructor (type, eventInitDict) {    const prefix = 'ErrorEvent constructor'    webidl.argumentLengthCheck(arguments, 1, prefix)     super(type, eventInitDict)    webidl.util.markAsUncloneable(this)     type = webidl.converters.DOMString(type, prefix, 'type')    eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})     this.#eventInit = eventInitDict  }   get message () {    webidl.brandCheck(this, ErrorEvent)     return this.#eventInit.message  }   get filename () {    webidl.brandCheck(this, ErrorEvent)     return this.#eventInit.filename  }   get lineno () {    webidl.brandCheck(this, ErrorEvent)     return this.#eventInit.lineno  }   get colno () {    webidl.brandCheck(this, ErrorEvent)     return this.#eventInit.colno  }   get error () {    webidl.brandCheck(this, ErrorEvent)     return this.#eventInit.error  }} Object.defineProperties(MessageEvent.prototype, {  [Symbol.toStringTag]: {    value: 'MessageEvent',    configurable: true  },  data: kEnumerableProperty,  origin: kEnumerableProperty,  lastEventId: kEnumerableProperty,  source: kEnumerableProperty,  ports: kEnumerableProperty,  initMessageEvent: kEnumerableProperty}) Object.defineProperties(CloseEvent.prototype, {  [Symbol.toStringTag]: {    value: 'CloseEvent',    configurable: true  },  reason: kEnumerableProperty,  code: kEnumerableProperty,  wasClean: kEnumerableProperty}) Object.defineProperties(ErrorEvent.prototype, {  [Symbol.toStringTag]: {    value: 'ErrorEvent',    configurable: true  },  message: kEnumerableProperty,  filename: kEnumerableProperty,  lineno: kEnumerableProperty,  colno: kEnumerableProperty,  error: kEnumerableProperty}) webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) webidl.converters['sequence<MessagePort>'] = webidl.sequenceConverter(  webidl.converters.MessagePort) const eventInit = [  {    key: 'bubbles',    converter: webidl.converters.boolean,    defaultValue: () => false  },  {    key: 'cancelable',    converter: webidl.converters.boolean,    defaultValue: () => false  },  {    key: 'composed',    converter: webidl.converters.boolean,    defaultValue: () => false  }] webidl.converters.MessageEventInit = webidl.dictionaryConverter([  ...eventInit,  {    key: 'data',    converter: webidl.converters.any,    defaultValue: () => null  },  {    key: 'origin',    converter: webidl.converters.USVString,    defaultValue: () => ''  },  {    key: 'lastEventId',    converter: webidl.converters.DOMString,    defaultValue: () => ''  },  {    key: 'source',    // Node doesn't implement WindowProxy or ServiceWorker, so the only    // valid value for source is a MessagePort.    converter: webidl.nullableConverter(webidl.converters.MessagePort),    defaultValue: () => null  },  {    key: 'ports',    converter: webidl.converters['sequence<MessagePort>'],    defaultValue: () => new Array(0)  }]) webidl.converters.CloseEventInit = webidl.dictionaryConverter([  ...eventInit,  {    key: 'wasClean',    converter: webidl.converters.boolean,    defaultValue: () => false  },  {    key: 'code',    converter: webidl.converters['unsigned short'],    defaultValue: () => 0  },  {    key: 'reason',    converter: webidl.converters.USVString,    defaultValue: () => ''  }]) webidl.converters.ErrorEventInit = webidl.dictionaryConverter([  ...eventInit,  {    key: 'message',    converter: webidl.converters.DOMString,    defaultValue: () => ''  },  {    key: 'filename',    converter: webidl.converters.USVString,    defaultValue: () => ''  },  {    key: 'lineno',    converter: webidl.converters['unsigned long'],    defaultValue: () => 0  },  {    key: 'colno',    converter: webidl.converters['unsigned long'],    defaultValue: () => 0  },  {    key: 'error',    converter: webidl.converters.any  }]) module.exports = {  MessageEvent,  CloseEvent,  ErrorEvent,  createFastMessageEvent}