diff --git a/lib/web/fetch/headers.js b/lib/web/fetch/headers.js index b3ec5a70711..b2580e90e04 100644 --- a/lib/web/fetch/headers.js +++ b/lib/web/fetch/headers.js @@ -12,6 +12,7 @@ const { } = require('./util') const { webidl } = require('./webidl') const assert = require('node:assert') +const util = require('util') const kHeadersMap = Symbol('headers map') const kHeadersSortedMap = Symbol('headers map sorted') @@ -576,8 +577,18 @@ class Headers { return this[kHeadersList] } + + [util.inspect.custom] (depth, options) { + const inspected = util.inspect(this[kHeadersList].entries) + + return `Headers ${inspected}` + } } +Object.defineProperty(Headers.prototype, util.inspect.custom, { + enumerable: false +}) + iteratorMixin('Headers', Headers, kHeadersSortedMap, 0, 1) Object.defineProperties(Headers.prototype, { diff --git a/test/fetch/headers-inspect-custom.js b/test/fetch/headers-inspect-custom.js new file mode 100644 index 00000000000..1aa3326e98c --- /dev/null +++ b/test/fetch/headers-inspect-custom.js @@ -0,0 +1,17 @@ +'use strict' + +const { Headers } = require('../../lib/web/fetch/headers') +const { test } = require('node:test') +const assert = require('node:assert') +const util = require('util') + +test('Headers class custom inspection', () => { + const headers = new Headers() + headers.set('Content-Type', 'application/json') + headers.set('Authorization', 'Bearer token') + + const inspectedOutput = util.inspect(headers, { depth: 1 }) + + const expectedOutput = "Headers { 'Content-Type': 'application/json', Authorization: 'Bearer token' }" + assert.strictEqual(inspectedOutput, expectedOutput) +})