UNPKG

kura

Version:

The FileSystem API abstraction library.

129 lines 4.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractFileEntry = void 0; const AbstractEntry_1 = require("./AbstractEntry"); const FileSystemConstants_1 = require("./FileSystemConstants"); const FileSystemUtil_1 = require("./FileSystemUtil"); class AbstractFileEntry extends AbstractEntry_1.AbstractEntry { constructor(params) { super(params); this.isDirectory = false; this.isFile = true; } get size() { return this.params.size; } copyTo(parent, newName, successCallback, errorCallback) { if (!this.canCopy(parent, newName, errorCallback)) { return; } this.readFile((content) => { parent.getFile(newName || this.name, { create: true }, (fileEntry) => { fileEntry.writeFile(content, () => { successCallback(fileEntry); }, errorCallback); }); }, errorCallback); } createWriter(successCallback, errorCallback) { if (!this.fileWriter) { this.file(() => { successCallback(this.fileWriter); }, errorCallback); } else { successCallback(this.fileWriter); } } file(successCallback, errorCallback) { if (this.fileWriter) { successCallback(this.fileWriter.file); return; } const accessor = this.params.accessor; accessor .readContent(this.params, "blob") .then((blob) => { if (!blob) { successCallback(null); return; } const file = new File([blob], this.params.name, { type: FileSystemConstants_1.DEFAULT_CONTENT_TYPE, lastModified: this.params.lastModified, }); this.fileWriter = this.createFileWriter(file); successCallback(file); }) .catch((err) => { (0, FileSystemUtil_1.onError)(err, errorCallback); }); } moveTo(parent, newName, successCallback, errorCallback) { this.copyTo(parent, newName, (fileEntry) => { this.remove(() => { if (successCallback) { successCallback(fileEntry); } }, errorCallback); }, errorCallback); } readFile(successCallback, errorCallback, type) { this.params.accessor .readContent(this.params, type) .then((content) => { successCallback(content); }) .catch((err) => { (0, FileSystemUtil_1.onError)(err, errorCallback); }); } readText(successCallback, errorCallback) { this.params.accessor .readText(this.params) .then((text) => { successCallback(text); }) .catch((err) => { (0, FileSystemUtil_1.onError)(err, errorCallback); }); } remove(successCallback, errorCallback) { this.params.accessor .remove(this.params) .then(() => { successCallback(); }) .catch((err) => { (0, FileSystemUtil_1.onError)(err, errorCallback); }); } writeFile(content, successCallback, errorCallback) { this.params.accessor .putObject(this.params, content) .then((obj) => { this.params.size = obj.size; if (successCallback) { successCallback(); } }) .catch((err) => { (0, FileSystemUtil_1.onError)(err, errorCallback); }); } writeText(text, successCallback, errorCallback) { this.params.accessor .putText(this.params, text) .then((obj) => { this.params.size = obj.size; if (successCallback) { successCallback(); } }) .catch((err) => { (0, FileSystemUtil_1.onError)(err, errorCallback); }); } } exports.AbstractFileEntry = AbstractFileEntry; //# sourceMappingURL=AbstractFileEntry.js.map