| 1 | 'use strict' |
| 2 | function headRouteOnSendHandler (req, reply, payload, done) { |
| 3 | // If payload is undefined |
| 4 | if (payload === undefined) { |
| 5 | reply.header('content-length', '0') |
| 6 | done(null, null) |
| 7 | return |
| 8 | } |
| 9 | |
| 10 | // node:stream |
| 11 | if (typeof payload.resume === 'function') { |
| 12 | payload.on('error', (err) => { |
| 13 | reply.log.error({ err }, 'Error on Stream found for HEAD route') |
| 14 | }) |
| 15 | payload.resume() |
| 16 | done(null, null) |
| 17 | return |
| 18 | } |
| 19 | |
| 20 | // node:stream/web |
| 21 | if (typeof payload.getReader === 'function') { |
| 22 | payload.cancel('Stream cancelled by HEAD route').catch((err) => { |
| 23 | reply.log.error({ err }, 'Error on Stream found for HEAD route') |
| 24 | }) |
| 25 | done(null, null) |
| 26 | return |
| 27 | } |
| 28 | |
| 29 | const size = '' + Buffer.byteLength(payload) |
| 30 | |
| 31 | reply.header('content-length', size) |
| 32 | |
| 33 | done(null, null) |
| 34 | } |
| 35 | |
| 36 | function parseHeadOnSendHandlers (onSendHandlers) { |
| 37 | if (onSendHandlers == null) return headRouteOnSendHandler |