devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
122 lines (120 loc) • 5.43 kB
JavaScript
/**
* DevExtreme (cjs/__internal/file_management/provider_base.js)
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _common = require("../../core/utils/common");
var _data = require("../../core/utils/data");
var _date_serialization = _interopRequireDefault(require("../../core/utils/date_serialization"));
var _deferred = require("../../core/utils/deferred");
var _iterator = require("../../core/utils/iterator");
var _type = require("../../core/utils/type");
var _file_system_item = _interopRequireDefault(require("../file_management/file_system_item"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const DEFAULT_FILE_UPLOAD_CHUNK_SIZE = 2e5;
class FileSystemProviderBase {
constructor(options) {
options = (0, _common.ensureDefined)(options, {});
this._keyGetter = (0, _data.compileGetter)(this._getKeyExpr(options));
this._nameGetter = (0, _data.compileGetter)(this._getNameExpr(options));
this._isDirGetter = (0, _data.compileGetter)(this._getIsDirExpr(options));
this._sizeGetter = (0, _data.compileGetter)(this._getSizeExpr(options));
this._dateModifiedGetter = (0, _data.compileGetter)(this._getDateModifiedExpr(options));
this._thumbnailGetter = (0, _data.compileGetter)(this._getThumbnailExpr(options))
}
getItems(parentDirectory) {
const deferred = new _deferred.Deferred;
deferred.resolve([]);
return deferred.promise()
}
abortFileUpload(fileData, chunksInfo, destinationDirectory) {}
getItemsContent(items) {}
getFileUploadChunkSize() {
return 2e5
}
_convertDataObjectsToFileItems(entries, pathInfo) {
const result = [];
(0, _iterator.each)(entries, ((_, entry) => {
const fileItem = this._createFileItem(entry, pathInfo);
result.push(fileItem)
}));
return result
}
_createFileItem(dataObj, pathInfo) {
var _this$_keyGetter, _this$_nameGetter, _this$_isDirGetter, _this$_sizeGetter, _this$_dateModifiedGe, _this$_thumbnailGette;
const key = null === (_this$_keyGetter = this._keyGetter) || void 0 === _this$_keyGetter ? void 0 : _this$_keyGetter.call(this, dataObj);
const fileItem = new _file_system_item.default(pathInfo, null === (_this$_nameGetter = this._nameGetter) || void 0 === _this$_nameGetter ? void 0 : _this$_nameGetter.call(this, dataObj), !!(null !== (_this$_isDirGetter = this._isDirGetter) && void 0 !== _this$_isDirGetter && _this$_isDirGetter.call(this, dataObj)), key);
fileItem.size = null === (_this$_sizeGetter = this._sizeGetter) || void 0 === _this$_sizeGetter ? void 0 : _this$_sizeGetter.call(this, dataObj);
if (void 0 === fileItem.size) {
fileItem.size = 0
}
fileItem.dateModified = _date_serialization.default.deserializeDate(null === (_this$_dateModifiedGe = this._dateModifiedGetter) || void 0 === _this$_dateModifiedGe ? void 0 : _this$_dateModifiedGe.call(this, dataObj));
if (void 0 === fileItem.dateModified) {
fileItem.dateModified = new Date
}
if (fileItem.isDirectory) {
fileItem.hasSubDirectories = this._hasSubDirs(dataObj)
}
if (!key) {
fileItem.key = fileItem.relativeName
}
fileItem.thumbnail = (null === (_this$_thumbnailGette = this._thumbnailGetter) || void 0 === _this$_thumbnailGette ? void 0 : _this$_thumbnailGette.call(this, dataObj)) || "";
fileItem.dataItem = dataObj;
return fileItem
}
_hasSubDirs(dataObj) {
return true
}
_getKeyExpr(options) {
return options.keyExpr ?? this._defaultKeyExpr
}
_defaultKeyExpr(fileItem) {
if (2 === arguments.length) {
fileItem.__KEY__ = arguments[1];
return
}
return Object.prototype.hasOwnProperty.call(fileItem, "__KEY__") ? fileItem.__KEY__ : null
}
_getNameExpr(options) {
return options.nameExpr ?? "name"
}
_getIsDirExpr(options) {
return options.isDirectoryExpr ?? "isDirectory"
}
_getSizeExpr(options) {
return options.sizeExpr ?? "size"
}
_getDateModifiedExpr(options) {
return options.dateModifiedExpr ?? "dateModified"
}
_getThumbnailExpr(options) {
return options.thumbnailExpr ?? "thumbnail"
}
_executeActionAsDeferred(action, keepResult) {
const deferred = new _deferred.Deferred;
try {
const result = action();
if ((0, _type.isPromise)(result)) {
(0, _deferred.fromPromise)(result).done((userResult => deferred.resolve(keepResult ? userResult : void 0))).fail((error => deferred.reject(error)))
} else {
deferred.resolve(keepResult ? result : void 0)
}
} catch (error) {
return deferred.reject(error)
}
return deferred.promise()
}
}
var _default = exports.default = FileSystemProviderBase;