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); |
+ }); |
}); |
} |
}; |