Skip to content

Commit 4a9ed7e

Browse files
committed
extract shared utility functions
1 parent a5daa07 commit 4a9ed7e

File tree

6 files changed

+56
-100
lines changed

6 files changed

+56
-100
lines changed

HISTORY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
2.0.2 / 2024-10-31
1212
=========================
1313

14+
* extract shared utility functions
1415
* remove `unpipe` package and use native `unpipe()` method
1516

1617
2.0.1 / 2024-09-10

lib/types/json.js

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
*/
1414

1515
var bytes = require('bytes')
16-
var contentType = require('content-type')
1716
var createError = require('http-errors')
1817
var debug = require('debug')('body-parser:json')
1918
var isFinished = require('on-finished').isFinished
2019
var read = require('../read')
2120
var typeis = require('type-is')
21+
var { getCharset, typeChecker } = require('../utils')
2222

2323
/**
2424
* Module exports.
@@ -196,21 +196,6 @@ function firstchar (str) {
196196
: undefined
197197
}
198198

199-
/**
200-
* Get the charset of a request.
201-
*
202-
* @param {object} req
203-
* @api private
204-
*/
205-
206-
function getCharset (req) {
207-
try {
208-
return (contentType.parse(req).parameters.charset || '').toLowerCase()
209-
} catch (e) {
210-
return undefined
211-
}
212-
}
213-
214199
/**
215200
* Normalize a SyntaxError for JSON.parse.
216201
*
@@ -235,16 +220,3 @@ function normalizeJsonSyntaxError (error, obj) {
235220

236221
return error
237222
}
238-
239-
/**
240-
* Get the simple type checker.
241-
*
242-
* @param {string} type
243-
* @return {function}
244-
*/
245-
246-
function typeChecker (type) {
247-
return function checkType (req) {
248-
return Boolean(typeis(req, type))
249-
}
250-
}

lib/types/raw.js

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var debug = require('debug')('body-parser:raw')
1515
var isFinished = require('on-finished').isFinished
1616
var read = require('../read')
1717
var typeis = require('type-is')
18+
var { typeChecker } = require('../utils')
1819

1920
/**
2021
* Module exports.
@@ -89,16 +90,3 @@ function raw (options) {
8990
})
9091
}
9192
}
92-
93-
/**
94-
* Get the simple type checker.
95-
*
96-
* @param {string} type
97-
* @return {function}
98-
*/
99-
100-
function typeChecker (type) {
101-
return function checkType (req) {
102-
return Boolean(typeis(req, type))
103-
}
104-
}

lib/types/text.js

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
*/
1212

1313
var bytes = require('bytes')
14-
var contentType = require('content-type')
1514
var debug = require('debug')('body-parser:text')
1615
var isFinished = require('on-finished').isFinished
1716
var read = require('../read')
1817
var typeis = require('type-is')
18+
var { getCharset, typeChecker } = require('../utils')
1919

2020
/**
2121
* Module exports.
@@ -94,31 +94,3 @@ function text (options) {
9494
})
9595
}
9696
}
97-
98-
/**
99-
* Get the charset of a request.
100-
*
101-
* @param {object} req
102-
* @api private
103-
*/
104-
105-
function getCharset (req) {
106-
try {
107-
return (contentType.parse(req).parameters.charset || '').toLowerCase()
108-
} catch (e) {
109-
return undefined
110-
}
111-
}
112-
113-
/**
114-
* Get the simple type checker.
115-
*
116-
* @param {string} type
117-
* @return {function}
118-
*/
119-
120-
function typeChecker (type) {
121-
return function checkType (req) {
122-
return Boolean(typeis(req, type))
123-
}
124-
}

lib/types/urlencoded.js

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313
*/
1414

1515
var bytes = require('bytes')
16-
var contentType = require('content-type')
1716
var createError = require('http-errors')
1817
var debug = require('debug')('body-parser:urlencoded')
1918
var isFinished = require('on-finished').isFinished
2019
var read = require('../read')
2120
var typeis = require('type-is')
2221
var qs = require('qs')
22+
var { getCharset, typeChecker } = require('../utils')
2323

2424
/**
2525
* Module exports.
@@ -184,21 +184,6 @@ function createQueryParser (options, extended) {
184184
}
185185
}
186186

187-
/**
188-
* Get the charset of a request.
189-
*
190-
* @param {object} req
191-
* @api private
192-
*/
193-
194-
function getCharset (req) {
195-
try {
196-
return (contentType.parse(req).parameters.charset || '').toLowerCase()
197-
} catch (e) {
198-
return undefined
199-
}
200-
}
201-
202187
/**
203188
* Count the number of parameters, stopping once limit reached
204189
*
@@ -222,16 +207,3 @@ function parameterCount (body, limit) {
222207

223208
return count
224209
}
225-
226-
/**
227-
* Get the simple type checker.
228-
*
229-
* @param {string} type
230-
* @return {function}
231-
*/
232-
233-
function typeChecker (type) {
234-
return function checkType (req) {
235-
return Boolean(typeis(req, type))
236-
}
237-
}

lib/utils.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*!
2+
* body-parser
3+
* Copyright(c) 2014-2015 Douglas Christopher Wilson
4+
* MIT Licensed
5+
*/
6+
7+
'use strict'
8+
9+
/**
10+
* Module dependencies.
11+
*/
12+
13+
var contentType = require('content-type')
14+
var typeis = require('type-is')
15+
16+
/**
17+
* Module exports.
18+
*/
19+
20+
module.exports = {
21+
getCharset,
22+
typeChecker
23+
}
24+
25+
/**
26+
* Get the charset of a request.
27+
*
28+
* @param {object} req
29+
* @api private
30+
*/
31+
32+
function getCharset (req) {
33+
try {
34+
return (contentType.parse(req).parameters.charset || '').toLowerCase()
35+
} catch (e) {
36+
return undefined
37+
}
38+
}
39+
40+
/**
41+
* Get the simple type checker.
42+
*
43+
* @param {string} type
44+
* @return {function}
45+
*/
46+
47+
function typeChecker (type) {
48+
return function checkType (req) {
49+
return Boolean(typeis(req, type))
50+
}
51+
}

0 commit comments

Comments
 (0)