UNPKG

browserfs

Version:

A filesystem in your browser!

86 lines 13.3 kB
"use strict"; (function (FileType) { FileType[FileType["FILE"] = 32768] = "FILE"; FileType[FileType["DIRECTORY"] = 16384] = "DIRECTORY"; FileType[FileType["SYMLINK"] = 40960] = "SYMLINK"; })(exports.FileType || (exports.FileType = {})); var FileType = exports.FileType; var Stats = (function () { function Stats(item_type, size, mode, atime, mtime, ctime) { if (atime === void 0) { atime = new Date(); } if (mtime === void 0) { mtime = new Date(); } if (ctime === void 0) { ctime = new Date(); } this.size = size; this.mode = mode; this.atime = atime; this.mtime = mtime; this.ctime = ctime; this.dev = 0; this.ino = 0; this.rdev = 0; this.nlink = 1; this.blksize = 4096; this.uid = 0; this.gid = 0; this.birthtime = new Date(0); this.file_data = null; if (this.mode == null) { switch (item_type) { case FileType.FILE: this.mode = 0x1a4; break; case FileType.DIRECTORY: default: this.mode = 0x1ff; } } this.blocks = Math.ceil(size / 512); if (this.mode < 0x1000) { this.mode |= item_type; } } Stats.prototype.toBuffer = function () { var buffer = new Buffer(32); buffer.writeUInt32LE(this.size, 0); buffer.writeUInt32LE(this.mode, 4); buffer.writeDoubleLE(this.atime.getTime(), 8); buffer.writeDoubleLE(this.mtime.getTime(), 16); buffer.writeDoubleLE(this.ctime.getTime(), 24); return buffer; }; Stats.fromBuffer = function (buffer) { var size = buffer.readUInt32LE(0), mode = buffer.readUInt32LE(4), atime = buffer.readDoubleLE(8), mtime = buffer.readDoubleLE(16), ctime = buffer.readDoubleLE(24); return new Stats(mode & 0xF000, size, mode & 0xFFF, new Date(atime), new Date(mtime), new Date(ctime)); }; Stats.prototype.clone = function () { return new Stats(this.mode & 0xF000, this.size, this.mode & 0xFFF, this.atime, this.mtime, this.ctime); }; Stats.prototype.isFile = function () { return (this.mode & 0xF000) === FileType.FILE; }; Stats.prototype.isDirectory = function () { return (this.mode & 0xF000) === FileType.DIRECTORY; }; Stats.prototype.isSymbolicLink = function () { return (this.mode & 0xF000) === FileType.SYMLINK; }; Stats.prototype.chmod = function (mode) { this.mode = (this.mode & 0xF000) | mode; }; Stats.prototype.isSocket = function () { return false; }; Stats.prototype.isBlockDevice = function () { return false; }; Stats.prototype.isCharacterDevice = function () { return false; }; Stats.prototype.isFIFO = function () { return false; }; return Stats; }()); exports.__esModule = true; exports["default"] = Stats; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9mc19zdGF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL25vZGVfZnNfc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BLFdBQVksUUFBUTtJQUNsQiwyQ0FBYSxDQUFBO0lBQ2IscURBQWtCLENBQUE7SUFDbEIsaURBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFKRCxJQUFZLFFBQVEsR0FBUixnQkFJWCxDQUFBO0FBVUQ7SUFxQ0UsZUFDRSxTQUFtQixFQUNaLElBQVksRUFDWixJQUFhLEVBQ2IsS0FBd0IsRUFDeEIsS0FBd0IsRUFDeEIsS0FBd0I7UUFGL0IscUJBQStCLEdBQS9CLFlBQXlCLElBQUksRUFBRTtRQUMvQixxQkFBK0IsR0FBL0IsWUFBeUIsSUFBSSxFQUFFO1FBQy9CLHFCQUErQixHQUEvQixZQUF5QixJQUFJLEVBQUU7UUFKeEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVM7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQW5DMUIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUVoQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBRWhCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFFakIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBR3ZCLFFBQUcsR0FBVyxDQUFDLENBQUM7UUFFaEIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUVoQixjQUFTLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUIsY0FBUyxHQUFlLElBQUksQ0FBQztRQW1CbEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RC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TyxDQUFDO0lBQ25ELENBQUM7SUFNTSxxQkFBSyxHQUFaLFVBQWEsSUFBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUlNLHdCQUFRLEdBQWY7UUFDRSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLDZCQUFhLEdBQXBCO1FBQ0UsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxpQ0FBaUIsR0FBeEI7UUFDRSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLHNCQUFNLEdBQWI7UUFDRSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNILFlBQUM7QUFBRCxDQUFDLEFBeklELElBeUlDO0FBeklEOzBCQXlJQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCBmaWxlID0gcmVxdWlyZSgnLi9maWxlJyk7XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoZSB0eXBlIG9mIHRoZSBnaXZlbiBmaWxlLiBBcHBsaWVkIHRvICdtb2RlJy5cbiAqL1xuZXhwb3J0IGVudW0gRmlsZVR5cGUge1xuICBGSUxFID0gMHg4MDAwLFxuICBESVJFQ1RPUlkgPSAweDQwMDAsXG4gIFNZTUxJTksgPSAweEEwMDBcbn1cblxuLyoqXG4gKiBFbXVsYXRpb24gb2YgTm9kZSdzIGBmcy5TdGF0c2Agb2JqZWN0LlxuICpcbiAqIEF0dHJpYnV0ZSBkZXNjcmlwdGlvbnMgYXJlIGZyb20gYG1hbiAyIHN0YXQnXG4gKiBAc2VlIGh0dHA6Ly9ub2RlanMub3JnL2FwaS9mcy5odG1sI2ZzX2NsYXNzX2ZzX3N0YXRzXG4gKiBAc2VlIGh0dHA6Ly9tYW43Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuMi9zdGF0LjIuaHRtbFxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0YXRzIGltcGxlbWVudHMgZnMuU3RhdHMge1xuICBwdWJsaWMgYmxvY2tzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBVTlNVUFBPUlRFRCBBVFRSSUJVVEVTXG4gICAqIEkgYXNzdW1lIG5vIG9uZSBpcyBnb2luZyB0byBuZWVkIHRoZXNlIGRldGFpbHMsIGFsdGhvdWdoIHdlIGNvdWxkIGZha2VcbiAgICogYXBwcm9wcmlhdGUgdmFsdWVzIGlmIG5lZWQgYmUuXG4gICAqL1xuICAvLyBJRCBvZiBkZXZpY2UgY29udGFpbmluZyBmaWxlXG4gIHB1YmxpYyBkZXY6IG51bWJlciA9IDA7XG4gIC8vIGlub2RlIG51bWJlclxuICBwdWJsaWMgaW5vOiBudW1iZXIgPSAwO1xuICAvLyBkZXZpY2UgSUQgKGlmIHNwZWNpYWwgZmlsZSlcbiAgcHVibGljIHJkZXY6IG51bWJlciA9IDA7XG4gIC8vIG51bWJlciBvZiBoYXJkIGxpbmtzXG4gIHB1YmxpYyBubGluazogbnVtYmVyID0gMTtcbiAgLy8gYmxvY2tzaXplIGZvciBmaWxlIHN5c3RlbSBJL09cbiAgcHVibGljIGJsa3NpemU6IG51bWJlciA9IDQwOTY7XG4gIC8vIEB0b2RvIE1heWJlIHN1cHBvcnQgdGhlc2U/IGF0bSwgaXQncyBhIG9uZS11c2VyIGZpbGVzeXN0ZW0uXG4gIC8vIHVzZXIgSUQgb2Ygb3duZXJcbiAgcHVibGljIHVpZDogbnVtYmVyID0gMDtcbiAgLy8gZ3JvdXAgSUQgb2Ygb3duZXJcbiAgcHVibGljIGdpZDogbnVtYmVyID0gMDtcbiAgLy8gdGltZSBmaWxlIHdhcyBjcmVhdGVkIChjdXJyZW50bHkgdW5zdXBwb3J0ZWQpXG4gIHB1YmxpYyBiaXJ0aHRpbWU6IERhdGUgPSBuZXcgRGF0ZSgwKTtcbiAgLy8gWFhYOiBTb21lIGZpbGUgc3lzdGVtcyBzdGFzaCBkYXRhIG9uIHN0YXRzIG9iamVjdHMuXG4gIHB1YmxpYyBmaWxlX2RhdGE6IE5vZGVCdWZmZXIgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnRpY3VsYXIgZW50cnkgaW4gdGhlIGZpbGUgc3lzdGVtLlxuICAgKiBAcGFyYW0gW051bWJlcl0gaXRlbV90eXBlIHR5cGUgb2YgdGhlIGl0ZW0gKEZJTEUsIERJUkVDVE9SWSwgU1lNTElOSywgb3IgU09DS0VUKVxuICAgKiBAcGFyYW0gW051bWJlcl0gc2l6ZSBTaXplIG9mIHRoZSBpdGVtIGluIGJ5dGVzLiBGb3IgZGlyZWN0b3JpZXMvc3ltbGlua3MsXG4gICAqICAgdGhpcyBpcyBub3JtYWxseSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgaXRlbS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG1vZGUgVW5peC1zdHlsZSBmaWxlIG1vZGUgKGUuZy4gMG82NDQpXG4gICAqIEBwYXJhbSBbRGF0ZT9dIGF0aW1lIHRpbWUgb2YgbGFzdCBhY2Nlc3NcbiAgICogQHBhcmFtIFtEYXRlP10gbXRpbWUgdGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvblxuICAgKiBAcGFyYW0gW0RhdGU/XSBjdGltZSB0aW1lIG9mIGNyZWF0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBpdGVtX3R5cGU6IEZpbGVUeXBlLFxuICAgIHB1YmxpYyBzaXplOiBudW1iZXIsXG4gICAgcHVibGljIG1vZGU/OiBudW1iZXIsXG4gICAgcHVibGljIGF0aW1lOiBEYXRlID0gbmV3IERhdGUoKSxcbiAgICBwdWJsaWMgbXRpbWU6IERhdGUgPSBuZXcgRGF0ZSgpLFxuICAgIHB1YmxpYyBjdGltZTogRGF0ZSA9IG5ldyBEYXRlKCkpIHtcbiAgICBpZiAodGhpcy5tb2RlID09IG51bGwpIHtcbiAgICAgIHN3aXRjaChpdGVtX3R5cGUpIHtcbiAgICAgICAgY2FzZSBGaWxlVHlwZS5GSUxFOlxuICAgICAgICAgIHRoaXMubW9kZSA9IDB4MWE0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZpbGVUeXBlLkRJUkVDVE9SWTpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLm1vZGUgPSAweDFmZjtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gbnVtYmVyIG9mIDUxMkIgYmxvY2tzIGFsbG9jYXRlZFxuICAgIHRoaXMuYmxvY2tzID0gTWF0aC5jZWlsKHNpemUgLyA1MTIpO1xuICAgIC8vIENoZWNrIGlmIG1vZGUgYWxzbyBpbmNsdWRlcyB0b3AtbW9zdCBiaXRzLCB3aGljaCBpbmRpY2F0ZSB0aGUgZmlsZSdzXG4gICAgLy8gdHlwZS5cbiAgICBpZiAodGhpcy5tb2RlIDwgMHgxMDAwKSB7XG4gICAgICB0aGlzLm1vZGUgfD0gaXRlbV90eXBlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b0J1ZmZlcigpOiBCdWZmZXIge1xuICAgIHZhciBidWZmZXIgPSBuZXcgQnVmZmVyKDMyKTtcbiAgICBidWZmZXIud3JpdGVVSW50MzJMRSh0aGlzLnNpemUsIDApO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKHRoaXMubW9kZSwgNCk7XG4gICAgYnVmZmVyLndyaXRlRG91YmxlTEUodGhpcy5hdGltZS5nZXRUaW1lKCksIDgpO1xuICAgIGJ1ZmZlci53cml0ZURvdWJsZUxFKHRoaXMubXRpbWUuZ2V0VGltZSgpLCAxNik7XG4gICAgYnVmZmVyLndyaXRlRG91YmxlTEUodGhpcy5jdGltZS5nZXRUaW1lKCksIDI0KTtcbiAgICByZXR1cm4gYnVmZmVyO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVmZmVyKGJ1ZmZlcjogQnVmZmVyKTogU3RhdHMge1xuICAgIHZhciBzaXplID0gYnVmZmVyLnJlYWRVSW50MzJMRSgwKSxcbiAgICAgIG1vZGUgPSBidWZmZXIucmVhZFVJbnQzMkxFKDQpLFxuICAgICAgYXRpbWUgPSBidWZmZXIucmVhZERvdWJsZUxFKDgpLFxuICAgICAgbXRpbWUgPSBidWZmZXIucmVhZERvdWJsZUxFKDE2KSxcbiAgICAgIGN0aW1lID0gYnVmZmVyLnJlYWREb3VibGVMRSgyNCk7XG5cbiAgICByZXR1cm4gbmV3IFN0YXRzKG1vZGUgJiAweEYwMDAsIHNpemUsIG1vZGUgJiAweEZGRiwgbmV3IERhdGUoYXRpbWUpLCBuZXcgRGF0ZShtdGltZSksIG5ldyBEYXRlKGN0aW1lKSk7XG4gIH1cblxuICAvKipcbiAgICogKipOb25zdGFuZGFyZCoqOiBDbG9uZSB0aGUgc3RhdHMgb2JqZWN0LlxuICAgKiBAcmV0dXJuIFtCcm93c2VyRlMubm9kZS5mcy5TdGF0c11cbiAgICovXG4gIHB1YmxpYyBjbG9uZSgpOiBTdGF0cyB7XG4gICAgcmV0dXJuIG5ldyBTdGF0cyh0aGlzLm1vZGUgJiAweEYwMDAsIHRoaXMuc2l6ZSwgdGhpcy5tb2RlICYgMHhGRkYsIHRoaXMuYXRpbWUsIHRoaXMubXRpbWUsIHRoaXMuY3RpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIFRydWUgaWYgdGhpcyBpdGVtIGlzIGEgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBpc0ZpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLm1vZGUgJiAweEYwMDApID09PSBGaWxlVHlwZS5GSUxFO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIFRydWUgaWYgdGhpcyBpdGVtIGlzIGEgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIGlzRGlyZWN0b3J5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tb2RlICYgMHhGMDAwKSA9PT0gRmlsZVR5cGUuRElSRUNUT1JZO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIFRydWUgaWYgdGhpcyBpdGVtIGlzIGEgc3ltYm9saWMgbGluayAob25seSB2YWxpZCB0aHJvdWdoIGxzdGF0KVxuICAgKi9cbiAgcHVibGljIGlzU3ltYm9saWNMaW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tb2RlICYgMHhGMDAwKSA9PT0gRmlsZVR5cGUuU1lNTElOSztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIG1vZGUgb2YgdGhlIGZpbGUuIFdlIHVzZSB0aGlzIGhlbHBlciBmdW5jdGlvbiB0byBwcmV2ZW50IG1lc3NpbmdcbiAgICogdXAgdGhlIHR5cGUgb2YgdGhlIGZpbGUsIHdoaWNoIGlzIGVuY29kZWQgaW4gbW9kZS5cbiAgICovXG4gIHB1YmxpYyBjaG1vZChtb2RlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGUgPSAodGhpcy5tb2RlICYgMHhGMDAwKSB8IG1vZGU7XG4gIH1cblxuICAvLyBXZSBkb24ndCBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgdHlwZXMgb2YgZmlsZXMuXG5cbiAgcHVibGljIGlzU29ja2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0Jsb2NrRGV2aWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoYXJhY3RlckRldmljZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNGSUZPKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19