123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- "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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.createVolume = exports.ObjectStore = void 0;
- var volume_1 = require("./volume");
- var node_1 = require("./node");
- var ObjectStore = /** @class */ (function () {
- function ObjectStore(obj) {
- this.obj = obj;
- }
- ObjectStore.prototype.setItem = function (key, json) {
- this.obj[key] = JSON.stringify(json);
- };
- ObjectStore.prototype.getItem = function (key) {
- var data = this.obj[key];
- if (typeof data === void 0)
- return void 0;
- return JSON.parse(data);
- };
- ObjectStore.prototype.removeItem = function (key) {
- delete this.obj[key];
- };
- return ObjectStore;
- }());
- exports.ObjectStore = ObjectStore;
- function createVolume(namespace, LS) {
- if (LS === void 0) { LS = localStorage; }
- var store = new ObjectStore(LS);
- var key = function (type, id) { return "memfs.".concat(namespace, ".").concat(type, ".").concat(id); };
- var NodeLocalStorage = /** @class */ (function (_super) {
- __extends(NodeLocalStorage, _super);
- function NodeLocalStorage() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- Object.defineProperty(NodeLocalStorage.prototype, "Key", {
- get: function () {
- if (!this._key)
- this._key = key('ino', this.ino);
- return this._key;
- },
- enumerable: false,
- configurable: true
- });
- NodeLocalStorage.prototype.sync = function () {
- store.setItem(this.Key, this.toJSON());
- };
- NodeLocalStorage.prototype.touch = function () {
- _super.prototype.touch.call(this);
- this.sync();
- };
- NodeLocalStorage.prototype.del = function () {
- _super.prototype.del.call(this);
- store.removeItem(this.Key);
- };
- return NodeLocalStorage;
- }(node_1.Node));
- var LinkLocalStorage = /** @class */ (function (_super) {
- __extends(LinkLocalStorage, _super);
- function LinkLocalStorage() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- Object.defineProperty(LinkLocalStorage.prototype, "Key", {
- get: function () {
- if (!this._key)
- this._key = key('link', this.getPath());
- return this._key;
- },
- enumerable: false,
- configurable: true
- });
- LinkLocalStorage.prototype.sync = function () {
- store.setItem(this.Key, this.toJSON());
- };
- return LinkLocalStorage;
- }(node_1.Link));
- return /** @class */ (function (_super) {
- __extends(VolumeLocalStorage, _super);
- function VolumeLocalStorage() {
- return _super.call(this, {
- Node: NodeLocalStorage,
- Link: LinkLocalStorage,
- }) || this;
- }
- VolumeLocalStorage.prototype.createLink = function (parent, name, isDirectory, perm) {
- var link = _super.prototype.createLink.call(this, parent, name, isDirectory, perm);
- store.setItem(key('link', link.getPath()), link.toJSON());
- return link;
- };
- VolumeLocalStorage.prototype.deleteLink = function (link) {
- store.removeItem(key('link', link.getPath()));
- return _super.prototype.deleteLink.call(this, link);
- };
- return VolumeLocalStorage;
- }(volume_1.Volume));
- }
- exports.createVolume = createVolume;
|