File Explorer

/var/lang/lib/node_modules/npm/node_modules/undici/lib/dispatcher

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 /.

dispatcher.js1.4 KB · 66 lines
'use strict'const EventEmitter = require('node:events') class Dispatcher extends EventEmitter {  dispatch () {    throw new Error('not implemented')  }   close () {    throw new Error('not implemented')  }   destroy () {    throw new Error('not implemented')  }   compose (...args) {    // So we handle [interceptor1, interceptor2] or interceptor1, interceptor2, ...    const interceptors = Array.isArray(args[0]) ? args[0] : args    let dispatch = this.dispatch.bind(this)     for (const interceptor of interceptors) {      if (interceptor == null) {        continue      }       if (typeof interceptor !== 'function') {        throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`)      }       dispatch = interceptor(dispatch)       if (dispatch == null || typeof dispatch !== 'function' || dispatch.length !== 2) {        throw new TypeError('invalid interceptor')      }    }     return new ComposedDispatcher(this, dispatch)  }} class ComposedDispatcher extends Dispatcher {  #dispatcher = null  #dispatch = null   constructor (dispatcher, dispatch) {    super()    this.#dispatcher = dispatcher    this.#dispatch = dispatch  }   dispatch (...args) {    this.#dispatch(...args)  }   close (...args) {    return this.#dispatcher.close(...args)  }   destroy (...args) {    return this.#dispatcher.destroy(...args)  }} module.exports = Dispatcher