HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /volume1/@appstore/Spreadsheet/server/common/util/promise-writable.js
"use strict";class e{constructor(e){e.setMaxListeners(0);this.stream=e;this._errored=null;this._isPromiseWritable=true}static[Symbol.hasInstance](e){return e._isPromiseWritable||e._isPromiseDuplex}write(e){const r=this.stream;return new Promise(((s,o)=>{if(!r.writable||r.closed||r.destroyed){o(new Error(`write after end`));return}const i=e=>{this._errored=e;o(e)};r.once("error",i);if(r.write(e)){r.removeListener("error",i);if(!this._errored){s(e.length)}}else{const o=()=>{r.removeListener("close",n);r.removeListener("finish",t);r.removeListener("error",i);s(e.length)};const n=()=>{r.removeListener("drain",o);r.removeListener("error",i);r.removeListener("finish",t);s(e.length)};const t=()=>{r.removeListener("close",n);r.removeListener("drain",o);r.removeListener("error",i);s(e.length)};r.once("close",n);r.once("drain",o);r.once("finish",t)}}))}writeAll(e,r){r=r||64*1024;const s=this.stream;return new Promise(((o,i)=>{if(!s.writable||s.closed||s.destroyed){i(new Error(`writeAll after end`));return}let n=0;const t=()=>{while(s.writable&&!this._errored&&n*r<e.length){const o=e.slice(n*r,++n*r);s.write(o);if(n*r>=e.length){s.end()}}};const c=()=>{s.removeListener("drain",t);s.removeListener("error",m);s.removeListener("finish",l);o(s.bytesWritten||0)};const l=()=>{s.removeListener("close",c);s.removeListener("drain",t);s.removeListener("error",m);o(s.bytesWritten||0)};const m=e=>{s.removeListener("close",c);s.removeListener("finish",l);s.removeListener("error",m);this._errored=e;i(e)};s.on("drain",t);s.once("close",c);s.once("finish",l);s.once("error",m);t()}))}once(e){const r=this.stream;return new Promise(((s,o)=>{if(this._errored){o(this._errored);return}else if(r.closed){if(e==="close"){s();return}else{o(new Error(`once ${e} after close`));return}}else if(r.destroyed){if(e==="close"||e==="finish"){s();return}else{o(new Error(`once ${e} after destroy`));return}}const i=()=>{if(n){r.removeListener(e,n)}r.removeListener("error",t);if(c){r.removeListener("finish",c)}s()};const n=e!=="close"&&e!=="finish"&&e!=="error"?e=>{r.removeListener("close",i);r.removeListener("error",t);if(c){r.removeListener("finish",c)}s(e)}:undefined;const t=s=>{if(n){r.removeListener(e,n)}r.removeListener("close",i);if(c){r.removeListener("finish",c)}this._errored=s;o(s)};const c=e!=="close"?()=>{if(n){r.removeListener(e,n)}r.removeListener("close",i);r.removeListener("error",t);s()}:undefined;if(n){r.once(e,n)}r.once("close",i);if(c){r.once("finish",c)}r.once("error",t)}))}end(){const e=this.stream;return new Promise(((r,s)=>{if(!e.writable||e.closed||e.destroyed){r();return}const o=()=>{e.removeListener("error",i);r()};const i=r=>{e.removeListener("finish",o);this._errored=r;s(r)};e.once("finish",o);e.once("error",i);e.end()}))}}e.PromiseWritable=e;e.default=e;module.exports=e;