From deb75f090597e01a5d541a7da91edea194b984a5 Mon Sep 17 00:00:00 2001 From: boudin Date: Sun, 2 Aug 2015 19:37:15 +0200 Subject: [PATCH] Initial release --- lib/io-promise.js | 395 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 lib/io-promise.js diff --git a/lib/io-promise.js b/lib/io-promise.js new file mode 100644 index 0000000..3cd347b --- /dev/null +++ b/lib/io-promise.js @@ -0,0 +1,395 @@ +'use strict'; + +var fs = require('fs'); + +module.exports.fs = function() { + this.rename = function (oldPath, newPath) { + return new Promise (function(resolve, reject) { + fs.rename (oldPath, newPath, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.ftruncate = function (fd, len) { + return new Promise (function(resolve, reject) { + fs.ftruncate (fd, len, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.truncate = function (path, len) { + return new Promise (function(resolve, reject) { + fs.truncate (path, len, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.chown = function (path, uid, gid) { + return new Promise (function(resolve, reject) { + fs.chown (path, uid, gid, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.fchown = function (fd, uid, gid) { + return new Promise (function(resolve, reject) { + fs.fchown (fd, uid, gid, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.lchown = function (path, uid, gid) { + return new Promise (function(resolve, reject) { + fs.lchown (path, uid, gid, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.chmod = function (path, mode) { + return new Promise (function(resolve, reject) { + fs.chmod (path, mode, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.fchmod = function (fd, mode) { + return new Promise (function(resolve, reject) { + fs.fchmod (fd, mode, function(err) { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + }); + }; + + this.stat = function (path) { + return new Promise (function(resolve, reject) { + fs.stat (path, function(err, stats) { + if (err) { + reject(err); + } + else { + resolve(stats); + } + }); + }); + }; + + this.lstat = function (path) { + return new Promise (function(resolve, reject) { + fs.lstat (path, function(err, stats) { + if (err) { + reject(err); + } + else { + resolve(stats); + } + }); + }); + }; + + this.fstat = function (fd) { + return new Promise (function(resolve, reject) { + fs.fstat (fd, function (err, stats) { + if (err) { + reject(err); + } + else { + resolve(stats); + } + }); + }); + }; + + this.link = function (srcpath, dstpath) { + return new Promise (function (resolve, reject) { + fs.link (srcpath, dstpath, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.symlink = function (destination, path) { + return new Promise (function (resolve, reject) { + fs.symlink (destination, path, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.readlink = function (path) { + return new Promise (function (resolve, reject) { + fs.readlink (path, function (err, linkString) { + if (err) { + reject (err); + } + else { + resolve (linkString); + } + }); + }); + }; + + this.realpath = function (path, cache) { + return new Promise (function (resolve, reject) { + fs.readlink (path, cache, function (err, resolvedPath) { + if (err) { + reject (err); + } + else { + resolve (resolvedPath); + } + }); + }); + }; + + this.unlink = function (path) { + return new Promise (function (resolve, reject) { + fs.unlink (path, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.rmdir = function (path) { + return new Promise (function (resolve, reject) { + fs.rmdir (path, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.mkdir = function (path, mode) { + return new Promise (function (resolve, reject) { + fs.mkdir (path, mode ? mode : 0o777, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.readdir = function (path) { + return new Promise (function (resolve, reject) { + fs.readdir (path, function (err, files) { + if (err) { + reject (err); + } + else { + resolve (files); + } + }); + }); + }; + + this.close = function (fd) { + return new Promise (function (resolve, reject) { + fs.close (fd, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.open = function (path, flags, mode) { + return new Promise (function (resolve, reject) { + fs.open (path, flags, mode, function (err, fd) { + if (err) { + reject (err); + } + else { + resolve (fd); + } + }); + }); + }; + + this.utimes = function (path, atime, mtime) { + return new Promise (function (resolve, reject) { + fs.utimes (path, atime, mtime, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.futimes = function (fd, atime, mtime) { + return new Promise (function (resolve, reject) { + fs.futimes (fd, atime, mtime, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.fsync = function (fd) { + return new Promise (function (resolve, reject) { + fs.fsync (fd, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.write = function (fd, buffer, offset, length, position) { + return new Promise (function (resolve, reject) { + fs.write (fd, buffer, offset, length, position, function (err, written, buffer) { + if (err) { + reject (err); + } + else { + resolve (written, buffer); + } + }); + }); + }; + + this.read = function (fd, buffer, offset, length, position) { + return new Promise (function (resolve, reject) { + fs.read (fd, buffer, offset, length, position, function (err, bytesRead, buffer) { + if (err) { + reject (err); + } + else { + resolve (bytesRead, buffer); + } + }); + }); + }; + + this.readFile = function (filename, options) { + return new Promise (function (resolve, reject) { + fs.readFile (filename, options, function (err, data) { + if (err) { + reject (err); + } + else { + resolve (data); + } + }); + }); + }; + + this.writeFile = function (filename, options) { + return new Promise (function (resolve, reject) { + fs.writeFile (filename, options, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.appendFile = function (filename, options) { + return new Promise (function (resolve, reject) { + fs.appendFile (filename, options, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; + + this.access = function (path, mode) { + return new Promise (function (resolve, reject) { + fs.access (path, mode, function (err) { + if (err) { + reject (err); + } + else { + resolve (); + } + }); + }); + }; +};