kura
Version:
The FileSystem API abstraction library.
129 lines • 4.19 kB
JavaScript
;
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