Skip to content

Commit d4d9837

Browse files
author
benjaminPla
committed
remove array-flatten dependency, no longer necessary
replaced array-flatten dependency with the new flat() method from JavaScript, which is supported in Node.js version 11.0.0 and above. This simplifies the code and reduces the number of dependencies
1 parent 3531987 commit d4d9837

File tree

6 files changed

+4
-35
lines changed

6 files changed

+4
-35
lines changed

lib/application.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ var compileETag = require('./utils').compileETag;
2525
var compileQueryParser = require('./utils').compileQueryParser;
2626
var compileTrust = require('./utils').compileTrust;
2727
var deprecate = require('depd')('express');
28-
var flatten = require('array-flatten');
2928
var merge = require('utils-merge');
3029
var resolve = require('path').resolve;
3130
var setPrototypeOf = require('setprototypeof')
@@ -211,7 +210,7 @@ app.use = function use(fn) {
211210
}
212211
}
213212

214-
var fns = flatten(slice.call(arguments, offset));
213+
var fns = slice.call(arguments, offset).flat()
215214

216215
if (fns.length === 0) {
217216
throw new TypeError('app.use() requires a middleware function')

lib/router/index.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ var methods = require('methods');
1919
var mixin = require('utils-merge');
2020
var debug = require('debug')('express:router');
2121
var deprecate = require('depd')('express');
22-
var flatten = require('array-flatten');
2322
var parseUrl = require('parseurl');
2423
var setPrototypeOf = require('setprototypeof')
2524

@@ -456,7 +455,7 @@ proto.use = function use(fn) {
456455
}
457456
}
458457

459-
var callbacks = flatten(slice.call(arguments, offset));
458+
var callbacks = slice.call(arguments, offset).flat();
460459

461460
if (callbacks.length === 0) {
462461
throw new TypeError('Router.use() requires a middleware function')

lib/router/route.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
*/
1515

1616
var debug = require('debug')('express:router:route');
17-
var flatten = require('array-flatten');
1817
var Layer = require('./layer');
1918
var methods = require('methods');
2019

@@ -182,7 +181,7 @@ Route.prototype.dispatch = function dispatch(req, res, done) {
182181
*/
183182

184183
Route.prototype.all = function all() {
185-
var handles = flatten(slice.call(arguments));
184+
var handles = slice.call(arguments).flat();
186185

187186
for (var i = 0; i < handles.length; i++) {
188187
var handle = handles[i];
@@ -205,7 +204,7 @@ Route.prototype.all = function all() {
205204

206205
methods.forEach(function(method){
207206
Route.prototype[method] = function(){
208-
var handles = flatten(slice.call(arguments));
207+
var handles = slice.call(arguments).flat();
209208

210209
for (var i = 0; i < handles.length; i++) {
211210
var handle = handles[i];

lib/utils.js

-12
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ var Buffer = require('safe-buffer').Buffer
1616
var contentDisposition = require('content-disposition');
1717
var contentType = require('content-type');
1818
var deprecate = require('depd')('express');
19-
var flatten = require('array-flatten');
2019
var mime = require('send').mime;
2120
var etag = require('etag');
2221
var proxyaddr = require('proxy-addr');
@@ -59,17 +58,6 @@ exports.isAbsolute = function(path){
5958
if ('\\\\' === path.substring(0, 2)) return true; // Microsoft Azure absolute path
6059
};
6160

62-
/**
63-
* Flatten the given `arr`.
64-
*
65-
* @param {Array} arr
66-
* @return {Array}
67-
* @api private
68-
*/
69-
70-
exports.flatten = deprecate.function(flatten,
71-
'utils.flatten: use array-flatten npm module instead');
72-
7361
/**
7462
* Normalize the given `type`, for example "html" becomes "text/html".
7563
*

package.json

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
],
3030
"dependencies": {
3131
"accepts": "~1.3.8",
32-
"array-flatten": "1.1.1",
3332
"body-parser": "1.20.2",
3433
"content-disposition": "0.5.4",
3534
"content-type": "~1.0.4",

test/utils.js

-15
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,3 @@ describe('utils.isAbsolute()', function(){
8686
assert(!utils.isAbsolute('foo/bar'));
8787
})
8888
})
89-
90-
describe('utils.flatten(arr)', function(){
91-
it('should flatten an array', function(){
92-
var arr = ['one', ['two', ['three', 'four'], 'five']];
93-
var flat = utils.flatten(arr)
94-
95-
assert.strictEqual(flat.length, 5)
96-
assert.strictEqual(flat[0], 'one')
97-
assert.strictEqual(flat[1], 'two')
98-
assert.strictEqual(flat[2], 'three')
99-
assert.strictEqual(flat[3], 'four')
100-
assert.strictEqual(flat[4], 'five')
101-
assert.ok(flat.every(function (v) { return typeof v === 'string' }))
102-
})
103-
})

0 commit comments

Comments
 (0)