fastify-uws
Version:
A performant HTTP and WebSocket server for Fastify with uWebSockets.
2 lines (1 loc) • 1.53 kB
JavaScript
"use strict";var c=Object.defineProperty;var k=(o,r,e)=>r in o?c(o,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[r]=e;var i=(o,r,e)=>k(o,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("streamx"),t=require("./symbols.cjs"),g=()=>{};function b(){this.emit("aborted")}var h,u,l,a;class f extends(a=y.Readable,l=t.kReq,u=t.kUrl,h=t.kHeaders,a){constructor(e,s,d){super();i(this,"socket");i(this,"method");i(this,"httpVersion");i(this,"readableEnded");i(this,l);i(this,u);i(this,h);this.socket=s,this.method=d,this.httpVersion="1.1",this.readableEnded=!1,this[t.kReq]=e,this[t.kUrl]=null,this[t.kHeaders]=null,this.once("error",g);const n=super.destroy.bind(this);s.once("error",n),s.once("close",n),s.once("aborted",b.bind(this))}get aborted(){return this.socket.aborted}get url(){let e=this[t.kUrl];if(e)return e;const s=this[t.kReq].getQuery();return e=this[t.kUrl]=this[t.kReq].getUrl()+(s&&s.length>0?`?${s}`:""),e}set url(e){this[t.kUrl]=e}get headers(){let e=this[t.kHeaders];return e||(e=this[t.kHeaders]={},this[t.kReq].forEach((s,d)=>{e[s]=d}),e)}setEncoding(e){this.socket.setEncoding(e)}setTimeout(e){this.socket.setTimeout(e)}destroy(e){this.destroyed||this.destroying||this.socket.destroy(e)}unpipe(e){e.destroy()}_read(e){if(this.destroyed||this.destroying||this.socket.destroyed)return e();this.socket.onRead((s,d)=>{if(s)return e(s);if(this.destroyed||this.destroying)return e();this.push(d),d||(this.readableEnded=!0,e())})}}exports.Request=f;