mirror of
https://github.com/kiwix/kiwix-js-pwa.git
synced 2025-09-09 20:32:45 -04:00
Make fs.read compatible with filecache
Former-commit-id: 38f9dc7c7f825a77969ad55d7c4d25e4dc1aef22 [formerly a2c490caa3e19bab560b1f231b9985a881f170e9] Former-commit-id: dd3ec30dc2ed7ce373eb2c2dcb3bb7f0629de83e
This commit is contained in:
parent
34db2795c3
commit
df6d26a066
@ -55,10 +55,9 @@
|
|||||||
window.requireNode = window.require;
|
window.requireNode = window.require;
|
||||||
window.require = undefined;
|
window.require = undefined;
|
||||||
window.fs = requireNode('fs');
|
window.fs = requireNode('fs');
|
||||||
}
|
} else if ("serviceWorker" in navigator) {
|
||||||
// Try to activate Service Worker
|
// Try to activate Service Worker
|
||||||
console.log('Trying to activate Service Worker...');
|
console.log('Trying to activate Service Worker...');
|
||||||
if ("serviceWorker" in navigator) {
|
|
||||||
// Register the service worker
|
// Register the service worker
|
||||||
navigator.serviceWorker.register("../pwabuilder-sw.js", {
|
navigator.serviceWorker.register("../pwabuilder-sw.js", {
|
||||||
scope: "../"
|
scope: "../"
|
||||||
|
@ -156,6 +156,24 @@ define(['q'], function(Q) {
|
|||||||
};
|
};
|
||||||
var readInternal = function(file, begin, end) {
|
var readInternal = function(file, begin, end) {
|
||||||
return Q.Promise(function(resolve, reject) {
|
return Q.Promise(function(resolve, reject) {
|
||||||
|
if (file.readMode === 'electron') {
|
||||||
|
// We are reading a packaged file and have to use Electron fs.read (so we don't have to pick the file)
|
||||||
|
fs.open(file.path, 'r', function (err, fd) {
|
||||||
|
if (err) {
|
||||||
|
console.error('Could not find file!', err);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
var size = end - begin;
|
||||||
|
fs.read(fd, Buffer.alloc(size), 0, size, begin, function (err, bytesRead, data) {
|
||||||
|
if (err) reject(err);
|
||||||
|
else resolve(data);
|
||||||
|
fs.close(fd, function (err) {
|
||||||
|
if (err) console.log('Could not close file...', err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
reader.readAsArrayBuffer(file.slice(begin, end));
|
reader.readAsArrayBuffer(file.slice(begin, end));
|
||||||
reader.onload = function(e) {
|
reader.onload = function(e) {
|
||||||
@ -164,6 +182,7 @@ define(['q'], function(Q) {
|
|||||||
reader.onerror = reader.onabort = function(e) {
|
reader.onerror = reader.onabort = function(e) {
|
||||||
reject(e);
|
reject(e);
|
||||||
};
|
};
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -212,22 +212,22 @@ define(['q', 'filecache'], function(q, FileCache) {
|
|||||||
*/
|
*/
|
||||||
function readFileSlice(file, begin, size) {
|
function readFileSlice(file, begin, size) {
|
||||||
// var deferred = q.defer();
|
// var deferred = q.defer();
|
||||||
if (file.readMode === 'electron') {
|
// if (file.readMode === 'electron') {
|
||||||
// We are reading a packaged file and have to use Electron fs.read (so we don't have to pick the file)
|
// // We are reading a packaged file and have to use Electron fs.read (so we don't have to pick the file)
|
||||||
fs.open(file.path, 'r', function (err, fd) {
|
// fs.open(file.path, 'r', function (err, fd) {
|
||||||
if (err) {
|
// if (err) {
|
||||||
console.error('Could not find file!', err);
|
// console.error('Could not find file!', err);
|
||||||
} else {
|
// } else {
|
||||||
fs.read(fd, new Uint8Array(size), 0, size, begin, function (err, bytesRead, data) {
|
// fs.read(fd, Buffer.alloc(size), 0, size, begin, function (err, bytesRead, data) {
|
||||||
if (err) deferred.reject(err);
|
// if (err) deferred.reject(err);
|
||||||
else deferred.resolve(data);
|
// else deferred.resolve(data);
|
||||||
fs.close(fd, function (err) {
|
// fs.close(fd, function (err) {
|
||||||
if (err) console.log('Could not close file...', err);
|
// if (err) console.log('Could not close file...', err);
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
// We are reading a picked file, so use vanilla JS methods
|
// We are reading a picked file, so use vanilla JS methods
|
||||||
// var reader = new FileReader();
|
// var reader = new FileReader();
|
||||||
// reader.onload = function (e) {
|
// reader.onload = function (e) {
|
||||||
@ -240,7 +240,7 @@ define(['q', 'filecache'], function(q, FileCache) {
|
|||||||
// }
|
// }
|
||||||
// return deferred.promise;
|
// return deferred.promise;
|
||||||
return FileCache.read(file, begin, begin + size);
|
return FileCache.read(file, begin, begin + size);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user