| Index: lib/io.js |
| =================================================================== |
| --- a/lib/io.js |
| +++ b/lib/io.js |
| @@ -21,99 +21,105 @@ |
| const keyPrefix = "file:"; |
| function fileToKey(file) |
| { |
| return keyPrefix + (file instanceof FakeFile ? file.path : file.spec); |
|
Wladimir Palant
2017/05/09 09:12:27
Does this even work? The parameters passed to the
hub
2017/05/10 16:08:51
Looking at the code it seems that "file" is a file
|
| } |
| -function loadFile(file, successCallback, errorCallback) |
| +function loadFile(file) |
| { |
| - let key = fileToKey(file); |
| - |
| - ext.storage.get([key], items => |
| + return new Promise((resolve, reject) => |
| { |
| - let entry = items[key]; |
| + let key = fileToKey(file); |
| + |
| + ext.storage.get([key], items => |
| + { |
|
Wladimir Palant
2017/05/09 09:12:27
This should really be checking chrome.runtime.last
|
| + let entry = items[key]; |
| - if (entry) |
| - successCallback(entry); |
| - else |
| - errorCallback(new Error("File doesn't exist")); |
| + if (entry) |
| + resolve(entry); |
| + else |
| + reject(new Error("File doesn't exist")); |
| + }); |
| }); |
| } |
| -function saveFile(file, data, callback) |
| +function saveFile(file, data) |
| { |
| - ext.storage.set( |
| - fileToKey(file), |
| - { |
| - content: Array.from(data), |
| - lastModified: Date.now() |
| - }, |
| - callback |
| - ); |
| + return new Promise((resolve) => |
|
Wladimir Palant
2017/05/09 09:12:27
I don't think that it is a good idea to omit the r
hub
2017/05/10 16:08:51
I'll put it back wherever. I it probably a better
Sebastian Noack
2017/05/22 13:36:30
Personally, I think I would have omitted it too, b
|
| + { |
| + ext.storage.set( |
| + fileToKey(file), |
| + { |
| + content: Array.from(data), |
| + lastModified: Date.now() |
| + }, |
| + resolve |
| + ); |
| + }); |
| } |
| exports.IO = |
| { |
| resolveFilePath(path) { return new FakeFile(path); }, |
|
Wladimir Palant
2017/05/09 09:12:27
This method should be removed, along with the Fake
hub
2017/05/10 16:08:51
Done.
|
| - readFromFile(file, listener, callback) |
| + readFromFile(file, parser) |
|
Wladimir Palant
2017/05/09 09:12:27
I suggest that you copy JSDoc comments from https:
hub
2017/05/10 16:08:51
I'll change the parameters to match. And this reso
|
| { |
| - function onLoaded(entry) |
| + return loadFile(file).then(entry => |
| { |
| for (let line of entry.content) |
| - listener.process(line); |
| + parser(line); |
| - listener.process(null); |
| - callback(null); |
| - } |
| - |
| - loadFile(file, onLoaded, callback); |
| + parser(null); |
|
Wladimir Palant
2017/05/09 09:12:27
Please remove this call, it is no longer necessary
hub
2017/05/10 16:08:51
Done.
|
| + }); |
| }, |
| - writeToFile(file, data, callback) |
| + writeToFile(file, data) |
| { |
| - saveFile(file, data, callback); |
| + return saveFile(file, data); |
| }, |
| - copyFile(fromFile, toFile, callback) |
| + copyFile(fromFile, toFile) |
| { |
| - function onLoaded(entry) |
| + return new Promise((resolve, reject) => |
| { |
| - saveFile(toFile, entry.content, callback); |
| - } |
| - |
| - loadFile(fromFile, onLoaded, callback); |
| + loadFile(fromFile).then(entry => |
| + { |
| + saveFile(toFile, entry.content).then(resolve()); |
| + }); |
| + }); |
|
Wladimir Palant
2017/05/09 09:12:27
You don't need to create the promise explicitly. T
hub
2017/05/10 16:08:51
Acknowledged.
|
| }, |
| - renameFile(fromFile, newName, callback) |
| + renameFile(fromFile, newName) |
| { |
| - function onLoaded(entry) |
| + return new Promise(resolve => |
| { |
| - ext.storage.remove(fileToKey(fromFile), () => |
| + loadFile(fromFile).then(entry => |
| { |
| - ext.storage.set(keyPrefix + newName, entry, callback); |
| + ext.storage.remove(fileToKey(fromFile), () => |
| + { |
| + ext.storage.set(keyPrefix + newName, entry, resolve); |
| + }); |
| }); |
| - } |
| - |
| - loadFile(fromFile, onLoaded, callback); |
| + }); |
|
Wladimir Palant
2017/05/09 09:12:27
It's better to create the promises where they are
hub
2017/05/10 16:08:51
Make sense.
|
| }, |
| - removeFile(file, callback) |
| + removeFile(file) |
| { |
| - ext.storage.remove(fileToKey(file), callback); |
| + return new Promise(resolve => |
| + { |
| + ext.storage.remove(fileToKey(file), resolve); |
| + }); |
| }, |
| - statFile(file, callback) |
| + statFile(file) |
| { |
| - function onLoaded(entry) |
| + return loadFile(file).then((entry) => |
|
Wladimir Palant
2017/05/09 09:12:27
Nit: you are somewhat inconsistent, are you puttin
hub
2017/05/10 16:08:51
Acknowledged.
|
| { |
| - callback(null, { |
| + return { |
| exists: true, |
| lastModified: entry.lastModified |
| - }); |
| - } |
| - |
| - loadFile(file, onLoaded, callback); |
| + }; |
| + }); |
|
Wladimir Palant
2017/05/09 09:12:27
This promise will currently be rejected if the ent
hub
2017/05/10 16:08:51
Done.
|
| } |
| }; |