From 70f2871ff863fb723d22a68be2c16859a1f1cad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mert=20Can=20Alt=C4=B1n?= Date: Sun, 10 Mar 2024 18:07:17 +0300 Subject: [PATCH] fetch: improve util.inspect output for web specifications (#2938) --- lib/web/fetch/headers.js | 11 +++++++++++ test/fetch/headers-inspect-custom.js | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 test/fetch/headers-inspect-custom.js 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) +})