/opt/canhelp/node_modules/next/dist/server/web
NameSizeModeActions
exports/-0755rm
sandbox/-0755rm
spec-extension/-0755rm
adapter.d.ts10210644editdlrm
adapter.js185740644editdlrm
adapter.js.map284060644editdlrm
edge-route-module-wrapper.d.ts13670644editdlrm
edge-route-module-wrapper.js51840644editdlrm
edge-route-module-wrapper.js.map85220644editdlrm
error.d.ts2640644editdlrm
error.js14230644editdlrm
error.js.map13960644editdlrm
get-edge-preview-props.d.ts3870644editdlrm
get-edge-preview-props.js8020644editdlrm
get-edge-preview-props.js.map10670644editdlrm
globals.d.ts4020644editdlrm
globals.js48300644editdlrm
globals.js.map61580644editdlrm
http.d.ts6740644editdlrm
http.js7950644editdlrm
http.js.map11240644editdlrm
internal-edge-wait-until.d.ts1560644editdlrm
internal-edge-wait-until.js21720644editdlrm
internal-edge-wait-until.js.map29320644editdlrm
next-url.d.ts17520644editdlrm
next-url.js74400644editdlrm
next-url.js.map132480644editdlrm
types.d.ts19410644editdlrm
types.js1150644editdlrm
types.js.map670644editdlrm
utils.d.ts12490644editdlrm
utils.js49140644editdlrm
utils.js.map83650644editdlrm
web-on-close.d.ts5420644editdlrm
web-on-close.js27850644editdlrm
web-on-close.js.map34060644editdlrm
Edit: /opt/canhelp/node_modules/next/dist/server/web/web-on-close.js (2785B)
/** Monitor when the consumer finishes reading the response body. that's as close as we can get to `res.on('close')` using web APIs. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { CloseController: null, trackBodyConsumed: null, trackStreamConsumed: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { CloseController: function() { return CloseController; }, trackBodyConsumed: function() { return trackBodyConsumed; }, trackStreamConsumed: function() { return trackStreamConsumed; } }); function trackBodyConsumed(body, onEnd) { if (typeof body === 'string') { const generator = async function* generate() { const encoder = new TextEncoder(); yield encoder.encode(body); onEnd(); }; // @ts-expect-error BodyInit typings doesn't seem to include AsyncIterables even though it's supported in practice return generator(); } else { return trackStreamConsumed(body, onEnd); } } function trackStreamConsumed(stream, onEnd) { // NOTE: This function must handle `stream` being aborted or cancelled, // so it can't just be this: // // return stream.pipeThrough(new TransformStream({ flush() { onEnd() } })) // // because that doesn't handle cancellations. // (and cancellation handling via `Transformer.cancel` is only available in node >20) const dest = new TransformStream(); const runOnEnd = ()=>onEnd(); stream.pipeTo(dest.writable).then(runOnEnd, runOnEnd); return dest.readable; } class CloseController { onClose(callback) { if (this.isClosed) { throw Object.defineProperty(new Error('Cannot subscribe to a closed CloseController'), "__NEXT_ERROR_CODE", { value: "E365", enumerable: false, configurable: true }); } this.target.addEventListener('close', callback); this.listeners++; } dispatchClose() { if (this.isClosed) { throw Object.defineProperty(new Error('Cannot close a CloseController multiple times'), "__NEXT_ERROR_CODE", { value: "E229", enumerable: false, configurable: true }); } if (this.listeners > 0) { this.target.dispatchEvent(new Event('close')); } this.isClosed = true; } constructor(){ this.target = new EventTarget(); this.listeners = 0; this.isClosed = false; } } //# sourceMappingURL=web-on-close.js.map