| Server IP : 185.208.173.17 / Your IP : 87.236.161.98 Web Server : Microsoft-IIS/10.0 System : Windows NT SRV8576125506 10.0 build 26100 (Windows Server 2016) AMD64 User : IUSR ( 0) PHP Version : 7.4.13 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /inetpub/wwwroot/parsmega.nuxt/node_modules/memfs/lib/core/ |
Upload File : |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Link = void 0;
const events_1 = require("events");
const constants_1 = require("../constants");
const { S_IFREG } = constants_1.constants;
/**
* Represents a hard link that points to an i-node `node`.
*/
class Link extends events_1.EventEmitter {
get steps() {
return this._steps;
}
// Recursively sync children steps, e.g. in case of dir rename
set steps(val) {
this._steps = val;
for (const [child, link] of this.children.entries()) {
if (child === '.' || child === '..') {
continue;
}
link === null || link === void 0 ? void 0 : link.syncSteps();
}
}
constructor(vol, parent, name) {
super();
this.children = new Map();
// Path to this node as Array: ['usr', 'bin', 'node'].
this._steps = [];
// "i-node" number of the node.
this.ino = 0;
// Number of children.
this.length = 0;
this.vol = vol;
this.parent = parent;
this.name = name;
this.syncSteps();
}
setNode(node) {
this.node = node;
this.ino = node.ino;
}
getNode() {
return this.node;
}
createChild(name, node = this.vol.createNode(S_IFREG | 0o666)) {
const link = new Link(this.vol, this, name);
link.setNode(node);
if (node.isDirectory()) {
link.children.set('.', link);
link.getNode().nlink++;
}
this.setChild(name, link);
return link;
}
setChild(name, link = new Link(this.vol, this, name)) {
this.children.set(name, link);
link.parent = this;
this.length++;
const node = link.getNode();
if (node.isDirectory()) {
link.children.set('..', this);
this.getNode().nlink++;
}
this.getNode().mtime = new Date();
this.emit('child:add', link, this);
return link;
}
deleteChild(link) {
const node = link.getNode();
if (node.isDirectory()) {
link.children.delete('..');
this.getNode().nlink--;
}
this.children.delete(link.getName());
this.length--;
this.getNode().mtime = new Date();
this.emit('child:delete', link, this);
}
getChild(name) {
this.getNode().atime = new Date();
return this.children.get(name);
}
getPath() {
return this.steps.join("/" /* PATH.SEP */);
}
getParentPath() {
return this.steps.slice(0, -1).join("/" /* PATH.SEP */);
}
getName() {
return this.steps[this.steps.length - 1];
}
toJSON() {
return {
steps: this.steps,
ino: this.ino,
children: Array.from(this.children.keys()),
};
}
syncSteps() {
this.steps = this.parent ? this.parent.steps.concat([this.name]) : [this.name];
}
}
exports.Link = Link;
//# sourceMappingURL=Link.js.map