| Index: lib/io.js |
| diff --git a/lib/io.js b/lib/io.js |
| index 012529f64e1511bc433ad2cc63540781146bd3be..2b7026142b112ccea13bacc0fb0735451596d4cf 100644 |
| --- a/lib/io.js |
| +++ b/lib/io.js |
| @@ -15,72 +15,93 @@ |
| * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| -var IO = exports.IO = |
| +function readFileAsync(fileName) |
| { |
| - lineBreak: "\n", |
| + return new Promise((resolve, reject) => |
| + { |
| + _fileSystem.read(fileName, (result) => |
| + { |
| + if (result.error) |
| + return reject(result.error); |
| + resolve(result); |
| + }); |
| + }); |
| +}; |
| - resolveFilePath: function(path) |
| +function writeFileAsync(fileName, content) |
| +{ |
| + return new Promise((resolve, reject) => |
| { |
| - return new FakeFile(_fileSystem.resolve(path)); |
| - }, |
| + _fileSystem.write(fileName, content, (error) => |
| + { |
| + if (error) |
| + return reject(error); |
| + resolve(); |
| + }); |
| + }); |
| +}; |
| - readFromFile: function(file, listener, callback, timeLineID) |
| +exports.IO = |
| +{ |
| + lineBreak: "\n", |
| + |
| + readFromFile(fileName, listener) |
| { |
| - _fileSystem.read(file.path, function(result) |
| + return readFileAsync(fileName).then((result) => |
| { |
| - if (result.error) |
| - callback(result.error); |
| - else |
| - { |
| - var lines = result.content.split(/[\r\n]+/); |
| - for (var i = 0; i < lines.length; i++) |
| - listener.process(lines[i]); |
| - listener.process(null); |
| - callback(null); |
| - } |
| + let lines = result.content.split(/[\r\n]+/); |
| + for (let line of lines) |
| + listener(line); |
| }); |
| }, |
| - writeToFile: function(file, data, callback, timeLineID) |
| + writeToFile(fileName, generator) |
| { |
| - let content = Array.from(data).join(this.lineBreak) + this.lineBreak; |
| - _fileSystem.write(file.path, content, callback); |
| + let content = Array.from(generator).join(this.lineBreak) + this.lineBreak; |
| + return writeFileAsync(fileName, content); |
| }, |
| - copyFile: function(fromFile, toFile, callback) |
| + copyFile(fromFileName, toFileName) |
| { |
| - // Simply combine read and write operations |
| - var data = []; |
| - this.readFromFile(fromFile, { |
| - process: function(line) |
| - { |
| - if (line !== null) |
| - data.push(line); |
| - } |
| - }, function(e) |
| - { |
| - if (e) |
| - callback(e); |
| - else |
| - this.writeToFile(toFile, data, callback); |
| - }.bind(this)); |
| + return readFileAsync(fromFileName).then(content => writeFileAsync(toFileName, content)); |
| }, |
| - renameFile: function(fromFile, newName, callback) |
| + renameFile(fromFileName, newNameFile) |
| { |
| - _fileSystem.move(fromFile.path, newName, callback); |
| + return new Promise((resolve, reject) => |
| + { |
| + _fileSystem.move(fromFileName, newNameFile, (error) => |
| + { |
| + if (error) |
| + return reject(error); |
| + resolve(); |
| + }); |
| + }); |
| }, |
| - removeFile: function(file, callback) |
| + removeFile(fileName) |
| { |
| - _fileSystem.remove(file.path, callback); |
| + return new Promise((resolve, reject) => |
| + { |
| + _fileSystem.remove(fileName, (error) => |
| + { |
| + if (error) |
| + return reject(error); |
| + resolve(); |
| + }); |
| + }); |
| }, |
| - statFile: function(file, callback) |
| + statFile(fileName, callback) |
| { |
| - _fileSystem.stat(file.path, function(result) |
| + return new Promise((resolve, reject) => |
| { |
| - callback(result.error, result); |
| + _fileSystem.stat(fileName, (result) => |
| + { |
| + if (result.error) |
| + return reject(result.error); |
| + resolve(result); |
| + }); |
| }); |
| } |
| }; |