@middy/http-content-negotiation 2.5.5 → 2.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +61 -44
  2. package/package.json +4 -5
package/index.js CHANGED
@@ -1,19 +1,15 @@
1
- "use strict";
2
-
3
- const charset = require('negotiator/lib/charset.js');
4
-
5
- const encoding = require('negotiator/lib/encoding.js');
6
-
7
- const language = require('negotiator/lib/language.js');
8
-
9
- const mediaType = require('negotiator/lib/mediaType.js');
1
+ const charset = require('negotiator/lib/charset.js')
2
+ const encoding = require('negotiator/lib/encoding.js')
3
+ const language = require('negotiator/lib/language.js')
4
+ const mediaType = require('negotiator/lib/mediaType.js')
10
5
 
11
6
  const parseFn = {
12
7
  Charset: charset,
13
8
  Encoding: encoding,
14
9
  Language: language,
15
10
  MediaType: mediaType
16
- };
11
+ }
12
+
17
13
  const defaults = {
18
14
  parseCharsets: true,
19
15
  availableCharsets: undefined,
@@ -24,58 +20,79 @@ const defaults = {
24
20
  parseMediaTypes: true,
25
21
  availableMediaTypes: undefined,
26
22
  failOnMismatch: true
27
- };
23
+ }
28
24
 
29
25
  const httpContentNegotiationMiddleware = (opts = {}) => {
30
- const options = { ...defaults,
31
- ...opts
32
- };
33
-
34
- const httpContentNegotiationMiddlewareBefore = async request => {
35
- const {
36
- event
37
- } = request;
38
- if (!event.headers) return;
26
+ const options = { ...defaults, ...opts }
39
27
 
28
+ const httpContentNegotiationMiddlewareBefore = async (request) => {
29
+ const { event } = request
30
+ if (!event.headers) return
40
31
  if (options.parseCharsets) {
41
- parseHeader('Accept-Charset', 'Charset', options.availableCharsets, options.failOnMismatch, event);
32
+ parseHeader(
33
+ 'Accept-Charset',
34
+ 'Charset',
35
+ options.availableCharsets,
36
+ options.failOnMismatch,
37
+ event
38
+ )
42
39
  }
43
40
 
44
41
  if (options.parseEncodings) {
45
- parseHeader('Accept-Encoding', 'Encoding', options.availableEncodings, options.failOnMismatch, event);
42
+ parseHeader(
43
+ 'Accept-Encoding',
44
+ 'Encoding',
45
+ options.availableEncodings,
46
+ options.failOnMismatch,
47
+ event
48
+ )
46
49
  }
47
50
 
48
51
  if (options.parseLanguages) {
49
- parseHeader('Accept-Language', 'Language', options.availableLanguages, options.failOnMismatch, event);
52
+ parseHeader(
53
+ 'Accept-Language',
54
+ 'Language',
55
+ options.availableLanguages,
56
+ options.failOnMismatch,
57
+ event
58
+ )
50
59
  }
51
60
 
52
61
  if (options.parseMediaTypes) {
53
- parseHeader('Accept', 'MediaType', options.availableMediaTypes, options.failOnMismatch, event);
62
+ parseHeader(
63
+ 'Accept',
64
+ 'MediaType',
65
+ options.availableMediaTypes,
66
+ options.failOnMismatch,
67
+ event
68
+ )
54
69
  }
55
- };
70
+ }
56
71
 
57
72
  return {
58
73
  before: httpContentNegotiationMiddlewareBefore
59
- };
60
- };
61
-
62
- const parseHeader = (headerName, type, availableValues, failOnMismatch, event) => {
63
- var _event$headers$header;
64
-
65
- const resultsName = `preferred${type}s`;
66
- const resultName = `preferred${type}`;
67
- const headerValue = (_event$headers$header = event.headers[headerName]) !== null && _event$headers$header !== void 0 ? _event$headers$header : event.headers[headerName.toLowerCase()];
68
- event[resultsName] = parseFn[type](headerValue, availableValues);
69
- event[resultName] = event[resultsName][0];
74
+ }
75
+ }
76
+
77
+ const parseHeader = (
78
+ headerName,
79
+ type,
80
+ availableValues,
81
+ failOnMismatch,
82
+ event
83
+ ) => {
84
+ const resultsName = `preferred${type}s`
85
+ const resultName = `preferred${type}`
86
+ const headerValue =
87
+ event.headers[headerName] ?? event.headers[headerName.toLowerCase()]
88
+ event[resultsName] = parseFn[type](headerValue, availableValues)
89
+ event[resultName] = event[resultsName][0]
70
90
 
71
91
  if (failOnMismatch && event[resultName] === undefined) {
72
- const {
73
- createError
74
- } = require('@middy/util'); // NotAcceptable
75
-
76
-
77
- throw createError(406, `Unsupported ${type}. Acceptable values: ${availableValues.join(', ')}`);
92
+ const { createError } = require('@middy/util')
93
+ // NotAcceptable
94
+ throw createError(406, `Unsupported ${type}. Acceptable values: ${availableValues.join(', ')}`)
78
95
  }
79
- };
96
+ }
80
97
 
81
- module.exports = httpContentNegotiationMiddleware;
98
+ module.exports = httpContentNegotiationMiddleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-content-negotiation",
3
- "version": "2.5.5",
3
+ "version": "2.5.6",
4
4
  "description": "Http content negotiation middleware for the middy framework",
5
5
  "type": "commonjs",
6
6
  "engines": {
@@ -46,12 +46,11 @@
46
46
  },
47
47
  "homepage": "https://github.com/middyjs/middy#readme",
48
48
  "dependencies": {
49
- "@middy/util": "^2.5.5",
49
+ "@middy/util": "^2.5.6",
50
50
  "negotiator": "0.6.2"
51
51
  },
52
52
  "devDependencies": {
53
- "@middy/core": "^2.5.5",
54
- "http-errors": "^1.8.0"
53
+ "@middy/core": "^2.5.6"
55
54
  },
56
- "gitHead": "b84840ec8afd289f6decfd0d645be4899051792d"
55
+ "gitHead": "0c789f55b4adf691f977b0d9904d1a805bb3bb2b"
57
56
  }