@@ -181,10 +181,23 @@ function serveIndex(root, options) {
181
181
// make similar to file object (with stat)
182
182
var directory = {
183
183
name : originalDir ,
184
- stat : stat
184
+ type : 'inode/directory' ,
185
+ size : stat . size ,
186
+ lastModified : stat . mtime
185
187
}
186
188
187
- serveIndex [ mediaType [ type ] ] ( req , res , directory , fileList , next , showUp , icons , path , view , template , stylesheet ) ;
189
+ var nodes = fileList . map ( function ( file ) {
190
+ var ext = extname ( file . name )
191
+ var mimetype = mime . lookup ( ext )
192
+ return {
193
+ name : file . name ,
194
+ type : file . stat . isDirectory ( ) ? 'inode/directory' : mimetype ,
195
+ size : file . stat . size ,
196
+ lastModified : file . stat . mtime
197
+ }
198
+ } )
199
+
200
+ serveIndex [ mediaType [ type ] ] ( req , res , directory , nodes , next , showUp , icons , path , view , template , stylesheet )
188
201
} ) ;
189
202
} ) ;
190
203
} ) ;
@@ -256,7 +269,7 @@ function createHtmlFileList(files, dirname, useIcons, view) {
256
269
257
270
html += files . map ( function ( file ) {
258
271
var classes = [ ] ;
259
- var isDir = file . stat && file . stat . isDirectory ( ) ;
272
+ var isDir = 'inode/directory' === file . type
260
273
var path = dirname . split ( '/' ) . map ( function ( c ) { return encodeURIComponent ( c ) ; } ) ;
261
274
262
275
if ( useIcons ) {
@@ -279,11 +292,11 @@ function createHtmlFileList(files, dirname, useIcons, view) {
279
292
280
293
path . push ( encodeURIComponent ( file . name ) ) ;
281
294
282
- var date = file . stat && file . name !== '..'
283
- ? file . stat . mtime . toLocaleDateString ( ) + ' ' + file . stat . mtime . toLocaleTimeString ( )
295
+ var date = file . lastModified && file . name !== '..'
296
+ ? file . lastModified . toLocaleDateString ( ) + ' ' + file . lastModified . toLocaleTimeString ( )
284
297
: '' ;
285
- var size = file . stat && ! isDir
286
- ? file . stat . size
298
+ var size = file . size && ! isDir
299
+ ? file . size
287
300
: '' ;
288
301
289
302
return '<li><a href="'
@@ -431,7 +444,7 @@ function iconStyle(files, useIcons) {
431
444
for ( i = 0 ; i < files . length ; i ++ ) {
432
445
var file = files [ i ] ;
433
446
434
- var isDir = file . stat && file . stat . isDirectory ( ) ;
447
+ var isDir = 'inode/directory' === file . type
435
448
var icon = isDir
436
449
? { className : 'icon-directory' , fileName : icons . folder }
437
450
: iconLookup ( file . name ) ;
0 commit comments