From fc79a963357a6e0dd11f3c0ae0ef92faf7a2b504 Mon Sep 17 00:00:00 2001 From: Wes Todd Date: Sat, 31 Aug 2024 10:13:59 -0500 Subject: [PATCH] fix: perferred as option instaed of array --- README.md | 4 ++-- index.js | 6 +++--- package.json | 1 + test/encoding.js | 20 ++++++++++---------- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index c5c60b3..6fb7f2d 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ Returns the most preferred encoding from the client. Returns the most preferred encoding from a list of available encodings. -##### encoding(availableEncodings, preferred) +##### encoding(availableEncodings, { preferred }) Returns the most preferred encoding from a list of available encodings, while prioritizing based on `preferred` array between same-quality encodings. @@ -185,7 +185,7 @@ Returns an array of preferred encodings ordered by the client preference. Returns an array of preferred encodings ordered by priority from a list of available encodings. -##### encodings(availableEncodings, preferred) +##### encodings(availableEncodings, { preferred }) Returns an array of preferred encodings ordered by priority from a list of available encodings, while prioritizing based on `preferred` array between same-quality encodings. diff --git a/index.js b/index.js index 7df0b0a..4f87f02 100644 --- a/index.js +++ b/index.js @@ -44,12 +44,12 @@ Negotiator.prototype.charsets = function charsets(available) { return preferredCharsets(this.request.headers['accept-charset'], available); }; -Negotiator.prototype.encoding = function encoding(available, preferred) { - var set = this.encodings(available, preferred); +Negotiator.prototype.encoding = function encoding(available, opts) { + var set = this.encodings(available, opts); return set && set[0]; }; -Negotiator.prototype.encodings = function encodings(available, preferred) { +Negotiator.prototype.encodings = function encodings(available, { preferred } = {}) { return preferredEncodings(this.request.headers['accept-encoding'], available, preferred); }; diff --git a/package.json b/package.json index 297635f..7b38bad 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "scripts": { "lint": "eslint .", "test": "mocha --reporter spec --check-leaks --bail test/", + "test:debug": "mocha --reporter spec --check-leaks --inspect --inspect-brk test/", "test-ci": "nyc --reporter=lcov --reporter=text npm test", "test-cov": "nyc --reporter=html --reporter=text npm test" } diff --git a/test/encoding.js b/test/encoding.js index 007a17e..cb90854 100644 --- a/test/encoding.js +++ b/test/encoding.js @@ -192,11 +192,11 @@ describe('negotiator.encoding(array)', function () { }) it('should return developer-preferred encodings', function () { - assert.strictEqual(this.negotiator.encoding(['gzip', 'deflate'], ['deflate']), 'deflate') - assert.strictEqual(this.negotiator.encoding(['deflate', 'gzip'], ['deflate']), 'deflate') - assert.strictEqual(this.negotiator.encoding(['gzip', 'deflate'], ['gzip']), 'gzip') - assert.strictEqual(this.negotiator.encoding(['deflate', 'gzip'], ['gzip']), 'gzip') - assert.strictEqual(this.negotiator.encoding(['gzip'], ['gzip']), 'gzip') + assert.strictEqual(this.negotiator.encoding(['gzip', 'deflate'], { preferred: ['deflate'] }), 'deflate') + assert.strictEqual(this.negotiator.encoding(['deflate', 'gzip'], { preferred: ['deflate'] }), 'deflate') + assert.strictEqual(this.negotiator.encoding(['gzip', 'deflate'], { preferred: ['gzip'] }), 'gzip') + assert.strictEqual(this.negotiator.encoding(['deflate', 'gzip'], { preferred: ['gzip'] }), 'gzip') + assert.strictEqual(this.negotiator.encoding(['gzip'], { preferred: ['gzip'] }), 'gzip') }) }) @@ -419,11 +419,11 @@ describe('negotiator.encodings(array)', function () { }) it('should return developer-preferred encodings', function () { - assert.deepEqual(this.negotiator.encodings(['gzip', 'deflate'], ['deflate']), ['deflate', 'gzip']) - assert.deepEqual(this.negotiator.encodings(['deflate', 'gzip'], ['deflate']), ['deflate', 'gzip']) - assert.deepEqual(this.negotiator.encodings(['gzip', 'deflate'], ['gzip']), ['gzip', 'deflate']) - assert.deepEqual(this.negotiator.encodings(['deflate', 'gzip'], ['gzip']), ['gzip', 'deflate']) - assert.deepEqual(this.negotiator.encodings(['gzip'], ['gzip']), ['gzip']) + assert.deepEqual(this.negotiator.encodings(['gzip', 'deflate'], { preferred: ['deflate'] }), ['deflate', 'gzip']) + assert.deepEqual(this.negotiator.encodings(['deflate', 'gzip'], { preferred: ['deflate'] }), ['deflate', 'gzip']) + assert.deepEqual(this.negotiator.encodings(['gzip', 'deflate'], { preferred: ['gzip'] }), ['gzip', 'deflate']) + assert.deepEqual(this.negotiator.encodings(['deflate', 'gzip'], { preferred: ['gzip'] }), ['gzip', 'deflate']) + assert.deepEqual(this.negotiator.encodings(['gzip'], { preferred: ['gzip'] }), ['gzip']) }) })