aboutsummaryrefslogtreecommitdiff
path: root/node_modules/fs-extra/lib/fs/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/fs-extra/lib/fs/index.js
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
node_modules
Diffstat (limited to 'node_modules/fs-extra/lib/fs/index.js')
-rw-r--r--node_modules/fs-extra/lib/fs/index.js44
1 files changed, 42 insertions, 2 deletions
diff --git a/node_modules/fs-extra/lib/fs/index.js b/node_modules/fs-extra/lib/fs/index.js
index e20ae762a..551ca6a09 100644
--- a/node_modules/fs-extra/lib/fs/index.js
+++ b/node_modules/fs-extra/lib/fs/index.js
@@ -21,7 +21,6 @@ const api = [
'lstat',
'mkdir',
'open',
- 'read',
'readFile',
'readdir',
'readlink',
@@ -33,7 +32,6 @@ const api = [
'truncate',
'unlink',
'utimes',
- 'write',
'writeFile'
]
// fs.mkdtemp() was added in Node.js v5.10.0, so check if it exists
@@ -59,3 +57,45 @@ exports.exists = function (filename, callback) {
return fs.exists(filename, resolve)
})
}
+
+// fs.read() & fs.write need special treatment due to multiple callback args
+
+exports.read = function (fd, buffer, offset, length, position, callback) {
+ if (typeof callback === 'function') {
+ return fs.read(fd, buffer, offset, length, position, callback)
+ }
+ return new Promise((resolve, reject) => {
+ fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {
+ if (err) return reject(err)
+ resolve({ bytesRead, buffer })
+ })
+ })
+}
+
+// Function signature can be
+// fs.write(fd, buffer[, offset[, length[, position]]], callback)
+// OR
+// fs.write(fd, string[, position[, encoding]], callback)
+// so we need to handle both cases
+exports.write = function (fd, buffer, a, b, c, callback) {
+ if (typeof arguments[arguments.length - 1] === 'function') {
+ return fs.write(fd, buffer, a, b, c, callback)
+ }
+
+ // Check for old, depricated fs.write(fd, string[, position[, encoding]], callback)
+ if (typeof buffer === 'string') {
+ return new Promise((resolve, reject) => {
+ fs.write(fd, buffer, a, b, (err, bytesWritten, buffer) => {
+ if (err) return reject(err)
+ resolve({ bytesWritten, buffer })
+ })
+ })
+ }
+
+ return new Promise((resolve, reject) => {
+ fs.write(fd, buffer, a, b, c, (err, bytesWritten, buffer) => {
+ if (err) return reject(err)
+ resolve({ bytesWritten, buffer })
+ })
+ })
+}