mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
775 B
28 lines
775 B
9 years ago
|
'use strict'
|
||
|
var fs = require('fs')
|
||
|
var inflight = require('inflight')
|
||
|
var accessError = require('./access-error.js')
|
||
|
var isFsAccessAvailable = require('./is-fs-access-available.js')
|
||
|
|
||
|
if (isFsAccessAvailable) {
|
||
|
module.exports = fsAccessImplementation
|
||
|
} else {
|
||
|
module.exports = fsStatImplementation
|
||
|
}
|
||
|
|
||
|
// exposed only for testing purposes
|
||
|
module.exports.fsAccessImplementation = fsAccessImplementation
|
||
|
module.exports.fsStatImplementation = fsStatImplementation
|
||
|
|
||
|
function fsAccessImplementation (dir, done) {
|
||
|
done = inflight('exists:' + dir, done)
|
||
|
if (!done) return
|
||
|
fs.access(dir, fs.F_OK, done)
|
||
|
}
|
||
|
|
||
|
function fsStatImplementation (dir, done) {
|
||
|
done = inflight('exists:' + dir, done)
|
||
|
if (!done) return
|
||
|
fs.stat(dir, function (er) { done(accessError(dir, er)) })
|
||
|
}
|