source: trip-planner-front/node_modules/memfs/lib/volume-localstorage.js@ 76712b2

Last change on this file since 76712b2 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 4.2 KB
RevLine 
[6a3a178]1"use strict";
2var __extends = (this && this.__extends) || (function () {
3 var extendStatics = function (d, b) {
4 extendStatics = Object.setPrototypeOf ||
5 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7 return extendStatics(d, b);
8 };
9 return function (d, b) {
10 if (typeof b !== "function" && b !== null)
11 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12 extendStatics(d, b);
13 function __() { this.constructor = d; }
14 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15 };
16})();
17Object.defineProperty(exports, "__esModule", { value: true });
18exports.createVolume = exports.ObjectStore = void 0;
19var volume_1 = require("./volume");
20var node_1 = require("./node");
21var ObjectStore = /** @class */ (function () {
22 function ObjectStore(obj) {
23 this.obj = obj;
24 }
25 ObjectStore.prototype.setItem = function (key, json) {
26 this.obj[key] = JSON.stringify(json);
27 };
28 ObjectStore.prototype.getItem = function (key) {
29 var data = this.obj[key];
30 if (typeof data === void 0)
31 return void 0;
32 return JSON.parse(data);
33 };
34 ObjectStore.prototype.removeItem = function (key) {
35 delete this.obj[key];
36 };
37 return ObjectStore;
38}());
39exports.ObjectStore = ObjectStore;
40function createVolume(namespace, LS) {
41 if (LS === void 0) { LS = localStorage; }
42 var store = new ObjectStore(LS);
43 var key = function (type, id) { return "memfs." + namespace + "." + type + "." + id; };
44 var NodeLocalStorage = /** @class */ (function (_super) {
45 __extends(NodeLocalStorage, _super);
46 function NodeLocalStorage() {
47 return _super !== null && _super.apply(this, arguments) || this;
48 }
49 Object.defineProperty(NodeLocalStorage.prototype, "Key", {
50 get: function () {
51 if (!this._key)
52 this._key = key('ino', this.ino);
53 return this._key;
54 },
55 enumerable: false,
56 configurable: true
57 });
58 NodeLocalStorage.prototype.sync = function () {
59 store.setItem(this.Key, this.toJSON());
60 };
61 NodeLocalStorage.prototype.touch = function () {
62 _super.prototype.touch.call(this);
63 this.sync();
64 };
65 NodeLocalStorage.prototype.del = function () {
66 _super.prototype.del.call(this);
67 store.removeItem(this.Key);
68 };
69 return NodeLocalStorage;
70 }(node_1.Node));
71 var LinkLocalStorage = /** @class */ (function (_super) {
72 __extends(LinkLocalStorage, _super);
73 function LinkLocalStorage() {
74 return _super !== null && _super.apply(this, arguments) || this;
75 }
76 Object.defineProperty(LinkLocalStorage.prototype, "Key", {
77 get: function () {
78 if (!this._key)
79 this._key = key('link', this.getPath());
80 return this._key;
81 },
82 enumerable: false,
83 configurable: true
84 });
85 LinkLocalStorage.prototype.sync = function () {
86 store.setItem(this.Key, this.toJSON());
87 };
88 return LinkLocalStorage;
89 }(node_1.Link));
90 return /** @class */ (function (_super) {
91 __extends(VolumeLocalStorage, _super);
92 function VolumeLocalStorage() {
93 return _super.call(this, {
94 Node: NodeLocalStorage,
95 Link: LinkLocalStorage,
96 }) || this;
97 }
98 VolumeLocalStorage.prototype.createLink = function (parent, name, isDirectory, perm) {
99 var link = _super.prototype.createLink.call(this, parent, name, isDirectory, perm);
100 store.setItem(key('link', link.getPath()), link.toJSON());
101 return link;
102 };
103 VolumeLocalStorage.prototype.deleteLink = function (link) {
104 store.removeItem(key('link', link.getPath()));
105 return _super.prototype.deleteLink.call(this, link);
106 };
107 return VolumeLocalStorage;
108 }(volume_1.Volume));
109}
110exports.createVolume = createVolume;
Note: See TracBrowser for help on using the repository browser.