1111 */
1212
1313var escapeHtml = require ( 'escape-html' ) ;
14+ var merge = require ( 'utils-merge' ) ;
1415var parseurl = require ( 'parseurl' ) ;
1516var resolve = require ( 'path' ) . resolve ;
1617var send = require ( 'send' ) ;
@@ -24,11 +25,12 @@ var url = require('url');
2425 */
2526
2627exports = module . exports = function ( root , options ) {
27- options = extend ( { } , options ) ;
28-
2928 // root required
3029 if ( ! root ) throw new TypeError ( 'root path required' ) ;
3130
31+ // copy options object
32+ options = merge ( { } , options )
33+
3234 // resolve root to absolute
3335 root = resolve ( root ) ;
3436
@@ -49,7 +51,8 @@ exports = module.exports = function(root, options){
4951
5052 return function staticMiddleware ( req , res , next ) {
5153 if ( 'GET' != req . method && 'HEAD' != req . method ) return next ( ) ;
52- var opts = extend ( { } , options ) ;
54+
55+ var opts = merge ( { } , options )
5356 var originalUrl = parseurl . original ( req ) ;
5457 var path = parseurl ( req ) . pathname ;
5558
@@ -101,22 +104,3 @@ exports = module.exports = function(root, options){
101104 */
102105
103106exports . mime = send . mime ;
104-
105- /**
106- * Shallow clone a single object.
107- *
108- * @param {Object } obj
109- * @param {Object } source
110- * @return {Object }
111- * @api private
112- */
113-
114- function extend ( obj , source ) {
115- if ( ! source ) return obj ;
116-
117- for ( var prop in source ) {
118- obj [ prop ] = source [ prop ] ;
119- }
120-
121- return obj ;
122- } ;
0 commit comments