96 lines
4.1 KiB
JavaScript
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;
|