Skip to content

Commit 9dac622

Browse files
RubenVerborghrubensworks
authored andcommitted
Switch stat to promises.
1 parent d978f2c commit 9dac622

File tree

3 files changed

+31
-49
lines changed

3 files changed

+31
-49
lines changed

lib/handlers/index.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ function handler (req, res, next) {
1212
const requestedType = negotiator.mediaType()
1313
const filename = utils.reqToPath(req)
1414

15-
ldp.stat(filename, function (err, stats) {
16-
if (err) return next()
17-
15+
ldp.stat(filename).then(stats => {
1816
if (!stats.isDirectory()) {
1917
return next()
2018
}
@@ -37,5 +35,5 @@ function handler (req, res, next) {
3735
debug('Found an index for current path')
3836
return next()
3937
})
40-
})
38+
}, () => next())
4139
}

lib/ldp-container.js

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,19 @@ const mime = require('mime-types')
1212
const path = require('path')
1313

1414
function addContainerStats (ldp, reqUri, filename, resourceGraph, next) {
15-
ldp.stat(filename, function (err, containerStats) {
16-
if (!err) {
17-
addStats(resourceGraph, reqUri, containerStats)
18-
resourceGraph.add(
19-
resourceGraph.sym(reqUri),
20-
ns.rdf('type'),
21-
ns.ldp('BasicContainer'))
15+
ldp.stat(filename).then(containerStats => {
16+
addStats(resourceGraph, reqUri, containerStats)
17+
resourceGraph.add(
18+
resourceGraph.sym(reqUri),
19+
ns.rdf('type'),
20+
ns.ldp('BasicContainer'))
2221

23-
resourceGraph.add(
24-
resourceGraph.sym(reqUri),
25-
ns.rdf('type'),
26-
ns.ldp('Container'))
27-
}
22+
resourceGraph.add(
23+
resourceGraph.sym(reqUri),
24+
ns.rdf('type'),
25+
ns.ldp('Container'))
2826
next()
29-
})
27+
}, () => next())
3028
}
3129

3230
function addFile (ldp, resourceGraph, containerUri, reqUri, uri, container, file, callback) {
@@ -38,12 +36,7 @@ function addFile (ldp, resourceGraph, containerUri, reqUri, uri, container, file
3836
const filePath = path.join(container, file)
3937

4038
// Get file stats
41-
ldp.stat(filePath, function (err, stats) {
42-
if (err) {
43-
// File does not exist, skip
44-
return callback(null)
45-
}
46-
39+
ldp.stat(filePath).then(stats => {
4740
let memberUri = reqUri + (stats.isDirectory() ? '/' : '')
4841
// var fileSubject = file + (stats.isDirectory() ? '/' : '')
4942
// var fileBaseUri = utils.filenameToBaseUri(fileSubject, uri, root)
@@ -110,7 +103,7 @@ function addFile (ldp, resourceGraph, containerUri, reqUri, uri, container, file
110103

111104
return callback(null)
112105
})
113-
})
106+
}, () => callback(null))
114107
}
115108

116109
function addStats (resourceGraph, reqUri, stats) {
@@ -153,17 +146,13 @@ function readdir (filename, callback) {
153146
}
154147

155148
function getMetadataGraph (ldp, metaFile, fileBaseUri, callback) {
156-
ldp.stat(metaFile, function (err, metaStats) {
157-
if (err) {
158-
return callback(err)
159-
}
160-
149+
ldp.stat(metaFile).then(metaStats => {
161150
if (metaStats && metaStats.isFile()) {
162151
ldp.getGraph(metaFile)
163152
.then(graph => callback(null, graph),
164153
err => callback(error(err, 'Can\'t parse container metadata')))
165154
} else {
166155
callback(null, $rdf.graph())
167156
}
168-
})
157+
}, callback)
169158
}

lib/ldp.js

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,12 @@ class LDP {
9292
return this
9393
}
9494

95-
stat (file, callback) {
96-
fs.stat(file, function (err, stats) {
97-
if (err) {
98-
return callback(error(err, "Can't read metadata"))
99-
}
100-
return callback(null, stats)
95+
async stat (file, callback) {
96+
return new Promise((resolve, reject) => {
97+
fs.stat(file, (err, stats) => {
98+
if (err) return reject(error(err, "Can't read metadata"))
99+
resolve(stats)
100+
})
101101
})
102102
}
103103

@@ -384,12 +384,7 @@ class LDP {
384384
const root = !ldp.multiuser ? ldp.root : ldp.root + host + '/'
385385
const filename = utils.uriToFilename(reqPath, root)
386386

387-
ldp.stat(filename, function (err, stats) {
388-
// File does not exist
389-
if (err) {
390-
return callback(error(err, 'Can\'t find file requested: ' + filename))
391-
}
392-
387+
ldp.stat(filename).then(stats => {
393388
// Just return, since resource exists
394389
if (!includeBody) {
395390
return callback(null, {'stream': stats, 'contentType': contentType, 'container': stats.isDirectory()})
@@ -444,24 +439,24 @@ class LDP {
444439
return callback(null, {'stream': stream, 'contentType': contentType, 'container': false, 'contentRange': contentRange, 'chunksize': chunksize})
445440
})
446441
}
447-
})
442+
},
443+
err => callback(error(err, 'Can\'t find file requested: ' + filename))
444+
)
448445
}
449446

450447
delete (host, resourcePath, callback) {
451448
const ldp = this
452449
const root = !ldp.multiuser ? ldp.root : ldp.root + host + '/'
453450
const filename = utils.uriToFilename(resourcePath, root)
454-
ldp.stat(filename, function (err, stats) {
455-
if (err) {
456-
return callback(error(404, "Can't find " + err))
457-
}
458-
451+
ldp.stat(filename).then(stats => {
459452
if (stats.isDirectory()) {
460453
return ldp.deleteContainer(filename, callback)
461454
} else {
462455
return ldp.deleteResource(filename, callback)
463456
}
464-
})
457+
},
458+
err => callback(error(404, "Can't find " + err))
459+
)
465460
}
466461

467462
deleteContainer (directory, callback) {

0 commit comments

Comments
 (0)