readFile(filename) {
		return new Promise((resolve, reject) => {
			reject = setMessage(reject);
			window.resolveLocalFileSystemURL(
				filename,
				(fileEntry) => {
					(async () => {
						const url = fileEntry.toInternalURL();
						try {
							const data = await ajax({
								url: url,
								responseType: "arraybuffer",
							});

							resolve({ data });
						} catch (error) {
							fileEntry.file((file) => {
								const fileReader = new FileReader();
								fileReader.onerror = reject;
								fileReader.readAsArrayBuffer(file);
								fileReader.onloadend = () => {
									resolve({ data: fileReader.result });
								};
							}, reject);
						}
					})();
				},
				reject,
			);
		});
	}
Read a file
@param {string} filename
@param {string} encoding
@returns {Promise}