2025-10-01 19:55:38 +02:00

96 lines
4.1 KiB
JavaScript

"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var PhysicalFSManager_1 = require("../../../manager/v1/PhysicalFSManager");
var StandardResource_1 = require("../std/StandardResource");
var Errors_1 = require("../../../Errors");
var path = require("path");
var fs = require("fs");
var PhysicalResource = /** @class */ (function (_super) {
__extends(PhysicalResource, _super);
function PhysicalResource(realPath, parent, fsManager) {
var _this = this;
if (!fsManager)
if (parent && parent.fsManager && parent.fsManager.constructor === PhysicalFSManager_1.PhysicalFSManager)
fsManager = parent.fsManager;
else
fsManager = new PhysicalFSManager_1.PhysicalFSManager();
_this = _super.call(this, parent, fsManager) || this;
_this.removeOnUnavailableSource = false;
_this.deleteOnMoved = false;
_this.realPath = path.resolve(realPath);
_this.name = path.basename(_this.realPath);
return _this;
}
PhysicalResource.prototype.manageError = function (error) {
if (!this.removeOnUnavailableSource || !error)
return error;
this.removeFromParent(function (e) { });
return Errors_1.Errors.MustIgnore;
};
PhysicalResource.prototype.wrapCallback = function (callback) {
var _this = this;
return (function (e, arg1, arg2) { return callback(_this.manageError(e), arg1, arg2); });
};
PhysicalResource.prototype.moveTo = function (parent, newName, overwrite, callback) {
var _this = this;
callback = this.wrapCallback(callback);
var pRealPath = parent.realPath;
if (!(parent.fsManager && this.fsManager && parent.fsManager.uid === this.fsManager.uid && pRealPath)) {
StandardResource_1.StandardResource.standardMoveByCopy(this, parent, newName, overwrite, this.deleteOnMoved, callback);
return;
}
var newRealPath = path.join(pRealPath, newName);
fs.rename(this.realPath, newRealPath, function (e) {
if (e) {
callback(e);
return;
}
_this.realPath = newRealPath;
_this.name = path.basename(_this.realPath);
_this.removeFromParent(function (e) {
if (e) {
callback(e);
return;
}
_this.addToParent(parent, callback);
});
});
};
PhysicalResource.prototype.rename = function (newName, callback) {
var _this = this;
callback = this.wrapCallback(callback);
var newPath = path.join(this.realPath, '..', newName);
fs.rename(this.realPath, newPath, function (e) {
if (e) {
callback(_this.manageError(e), null, null);
return;
}
var oldName = path.basename(_this.realPath);
_this.realPath = newPath;
_this.name = newName;
_this.updateLastModified();
callback(null, oldName, newName);
});
};
// ****************************** Std meta-data ****************************** //
PhysicalResource.prototype.webName = function (callback) {
callback = this.wrapCallback(callback);
callback(null, path.basename(this.name));
};
return PhysicalResource;
}(StandardResource_1.StandardResource));
exports.PhysicalResource = PhysicalResource;