Difference between revisions of "MediaWiki:Gadget-LocalObjectStorage.js"
星海-adminbot (talk | contribs) (同步小工具) (Tag: Bot) |
m (跨站同步) (Tag: Bot) |
||
Line 1: | Line 1: | ||
− | /* | + | /* <pre> */ |
− | + | /** | |
+ | * ------------------------------------------------------------------------- | ||
+ | * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!! | ||
+ | * ------------------------------------------------------------------------- | ||
+ | */ | ||
+ | var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/LocalObjectStorage/MediaWiki:Gadget-LocalObjectStorage.js|user=[[U:AnnAngela]]|longId=7912a381cdf9c3e9286060bff474c0cd226579f1|shortId=7912a38|message=refactor(LocalObjectStorage): 使用最新语法糖重构}}'; | ||
+ | |||
"use strict"; | "use strict"; | ||
+ | var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { | ||
+ | if (kind === "m") throw new TypeError("Private method is not writable"); | ||
+ | if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); | ||
+ | if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); | ||
+ | return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; | ||
+ | }; | ||
+ | var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { | ||
+ | if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); | ||
+ | if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); | ||
+ | return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); | ||
+ | }; | ||
+ | var __read = (this && this.__read) || function (o, n) { | ||
+ | var m = typeof Symbol === "function" && o[Symbol.iterator]; | ||
+ | if (!m) return o; | ||
+ | var i = m.call(o), r, ar = [], e; | ||
+ | try { | ||
+ | while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); | ||
+ | } | ||
+ | catch (error) { e = { error: error }; } | ||
+ | finally { | ||
+ | try { | ||
+ | if (r && !r.done && (m = i["return"])) m.call(i); | ||
+ | } | ||
+ | finally { if (e) throw e.error; } | ||
+ | } | ||
+ | return ar; | ||
+ | }; | ||
+ | var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
+ | if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
+ | if (ar || !(i in from)) { | ||
+ | if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
+ | ar[i] = from[i]; | ||
+ | } | ||
+ | } | ||
+ | return to.concat(ar || Array.prototype.slice.call(from)); | ||
+ | }; | ||
+ | var __values = (this && this.__values) || function(o) { | ||
+ | var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; | ||
+ | if (m) return m.call(o); | ||
+ | if (o && typeof o.length === "number") return { | ||
+ | next: function () { | ||
+ | if (o && i >= o.length) o = void 0; | ||
+ | return { value: o && o[i++], done: !o }; | ||
+ | } | ||
+ | }; | ||
+ | throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); | ||
+ | }; | ||
(function () { | (function () { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
var builtinTransformations = [ | var builtinTransformations = [ | ||
{ | { | ||
Line 13: | Line 61: | ||
match: function (t) { return typeof t === "undefined"; }, | match: function (t) { return typeof t === "undefined"; }, | ||
encode: function () { return "undefined"; }, | encode: function () { return "undefined"; }, | ||
− | decode: function () { return undefined; } | + | decode: function () { return undefined; } |
}, | }, | ||
{ | { | ||
type: "bigint", | type: "bigint", | ||
match: function (t) { return typeof t === "bigint"; }, | match: function (t) { return typeof t === "bigint"; }, | ||
− | encode: function (b) { return "" | + | encode: function (b) { return "".concat(b); }, |
− | decode: function (b) { return BigInt(b); } | + | decode: function (b) { return BigInt(b); } |
}, | }, | ||
{ | { | ||
Line 25: | Line 73: | ||
match: function (t) { return t instanceof Date; }, | match: function (t) { return t instanceof Date; }, | ||
encode: function (d) { return d.toISOString(); }, | encode: function (d) { return d.toISOString(); }, | ||
− | decode: function (d) { return new Date(d); } | + | decode: function (d) { return new Date(d); } |
}, | }, | ||
{ | { | ||
type: "set", | type: "set", | ||
match: function (t) { return t instanceof Set; }, | match: function (t) { return t instanceof Set; }, | ||
− | encode: function (s) { return JSON.stringify(__spreadArray([], s.values())); }, | + | encode: function (s) { return JSON.stringify(__spreadArray([], __read(s.values()), false)); }, |
− | decode: function (s) { return new Set(JSON.parse(s)); } | + | decode: function (s) { return new Set(JSON.parse(s)); } |
}, | }, | ||
{ | { | ||
type: "map", | type: "map", | ||
match: function (t) { return t instanceof Map; }, | match: function (t) { return t instanceof Map; }, | ||
− | encode: function (m) { return JSON.stringify(__spreadArray([], m.entries())); }, | + | encode: function (m) { return JSON.stringify(__spreadArray([], __read(m.entries()), false)); }, |
− | decode: function (m) { return new Map(JSON.parse(m)); } | + | decode: function (m) { return new Map(JSON.parse(m)); } |
}, | }, | ||
{ | { | ||
type: "regexp", | type: "regexp", | ||
match: function (t) { return t instanceof RegExp; }, | match: function (t) { return t instanceof RegExp; }, | ||
− | encode: function (r) { return "" | + | encode: function (r) { return "".concat(r); }, |
− | decode: function (r) { return new RegExp(r.slice(1, r.length - 1)); } | + | decode: function (r) { return new RegExp(r.slice(1, r.length - 1)); } |
}, | }, | ||
]; | ]; | ||
− | var LocalObjectStorage = | + | var externalTransformations = []; |
+ | var LocalObjectStorage = (function () { | ||
function LocalObjectStorage(prefix) { | function LocalObjectStorage(prefix) { | ||
if (prefix === void 0) { prefix = ""; } | if (prefix === void 0) { prefix = ""; } | ||
+ | _LocalObjectStorage_keyPrefix.set(this, void 0); | ||
if (prefix === "default") { | if (prefix === "default") { | ||
− | throw new Error("LocalObjectStorage can't accept prefix \"" | + | throw new Error("LocalObjectStorage can't accept prefix \"".concat(prefix, "\".")); |
} | } | ||
if (prefix.includes("/")) { | if (prefix.includes("/")) { | ||
− | throw new Error("LocalObjectStorage can't accept prefix \"" | + | throw new Error("LocalObjectStorage can't accept prefix \"".concat(prefix, "\" including \"/\".")); |
} | } | ||
− | this | + | __classPrivateFieldSet(this, _LocalObjectStorage_keyPrefix, "AnnTool-localObjectStorage/".concat((prefix === null || prefix === void 0 ? void 0 : prefix.length) > 0 ? "".concat(prefix, "/") : "default/"), "f"); |
} | } | ||
+ | Object.defineProperty(LocalObjectStorage.prototype, "_keyPrefix", { | ||
+ | get: function () { | ||
+ | return __classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f"); | ||
+ | }, | ||
+ | enumerable: false, | ||
+ | configurable: true | ||
+ | }); | ||
LocalObjectStorage.prototype._getAllKeys = function () { | LocalObjectStorage.prototype._getAllKeys = function () { | ||
var _this = this; | var _this = this; | ||
− | return Object.keys(localStorage).filter(function (key) { return key.startsWith(_this | + | return Object.keys(localStorage).filter(function (key) { return key.startsWith(__classPrivateFieldGet(_this, _LocalObjectStorage_keyPrefix, "f")); }); |
}; | }; | ||
Object.defineProperty(LocalObjectStorage.prototype, "length", { | Object.defineProperty(LocalObjectStorage.prototype, "length", { | ||
Line 69: | Line 126: | ||
}); | }); | ||
LocalObjectStorage.prototype.getItem = function (key, fallback) { | LocalObjectStorage.prototype.getItem = function (key, fallback) { | ||
− | var value = localStorage.getItem("" | + | var e_1, _a; |
+ | var value = localStorage.getItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key)); | ||
if (value === null) { | if (value === null) { | ||
return fallback || value; | return fallback || value; | ||
} | } | ||
− | for (var | + | try { |
− | + | for (var _b = __values(builtinTransformations.concat(LocalObjectStorage.plugins.transformations.list)), _c = _b.next(); !_c.done; _c = _b.next()) { | |
− | + | var _d = _c.value, type = _d.type, decode = _d.decode; | |
− | + | if (type.includes("|")) { | |
− | + | console.error("LocalObjectStorage can't accept type name \"".concat(type, "\" including \"|\", skip...")); | |
− | + | continue; | |
− | + | } | |
− | + | if (type === "JSON") { | |
− | + | console.error("LocalObjectStorage can't accept type name \"".concat(type, "\", skip...")); | |
− | + | continue; | |
− | |||
− | |||
− | |||
} | } | ||
− | catch (e) { | + | if (value.startsWith("".concat(type, "|"))) { |
− | + | try { | |
+ | return decode(value.replace("".concat(type, "|"), "")); | ||
+ | } | ||
+ | catch (e) { | ||
+ | console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" to type \"").concat(type, "\" and skip...")); | ||
+ | } | ||
} | } | ||
} | } | ||
+ | } | ||
+ | catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
+ | finally { | ||
+ | try { | ||
+ | if (_c && !_c.done && (_a = _b["return"])) _a.call(_b); | ||
+ | } | ||
+ | finally { if (e_1) throw e_1.error; } | ||
} | } | ||
try { | try { | ||
Line 96: | Line 163: | ||
} | } | ||
catch (e) { | catch (e) { | ||
− | console.error("LocalObjectStorage can's transform value of key \"" | + | console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" to JSON and return raw value...")); |
return value; | return value; | ||
} | } | ||
}; | }; | ||
LocalObjectStorage.prototype.setItem = function (key, value) { | LocalObjectStorage.prototype.setItem = function (key, value) { | ||
− | for (var | + | var e_2, _a; |
− | + | try { | |
− | + | for (var _b = __values(builtinTransformations.concat(LocalObjectStorage.plugins.transformations.list)), _c = _b.next(); !_c.done; _c = _b.next()) { | |
− | + | var _d = _c.value, type = _d.type, match = _d.match, encode = _d.encode; | |
− | + | if (type.includes("|")) { | |
− | + | console.error("LocalObjectStorage can't accept type name \"".concat(type, "\" including \"|\", skip...")); | |
− | + | continue; | |
− | + | } | |
− | + | if (type === "JSON") { | |
− | + | console.error("LocalObjectStorage can't accept type name \"".concat(type, "\", skip...")); | |
− | + | continue; | |
− | |||
− | |||
− | |||
} | } | ||
− | catch (e) { | + | if (match(value)) { |
− | + | try { | |
+ | localStorage.setItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key), "".concat(type, "|").concat(encode(value))); | ||
+ | return; | ||
+ | } | ||
+ | catch (e) { | ||
+ | console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" from type \"").concat(type, "\" and skip...")); | ||
+ | } | ||
} | } | ||
} | } | ||
+ | } | ||
+ | catch (e_2_1) { e_2 = { error: e_2_1 }; } | ||
+ | finally { | ||
+ | try { | ||
+ | if (_c && !_c.done && (_a = _b["return"])) _a.call(_b); | ||
+ | } | ||
+ | finally { if (e_2) throw e_2.error; } | ||
} | } | ||
try { | try { | ||
− | localStorage.setItem("" | + | localStorage.setItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key), "JSON|".concat(JSON.stringify(value))); |
return; | return; | ||
} | } | ||
catch (e) { | catch (e) { | ||
− | console.error("LocalObjectStorage can's transform value of key \"" | + | console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" from JSON and store raw value...")); |
− | localStorage.setItem("" | + | localStorage.setItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key), value); |
} | } | ||
}; | }; | ||
LocalObjectStorage.prototype.removeItem = function (key) { | LocalObjectStorage.prototype.removeItem = function (key) { | ||
− | localStorage.removeItem("" | + | localStorage.removeItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key)); |
}; | }; | ||
LocalObjectStorage.prototype.clear = function () { | LocalObjectStorage.prototype.clear = function () { | ||
Line 141: | Line 218: | ||
LocalObjectStorage.prototype.key = function (index) { | LocalObjectStorage.prototype.key = function (index) { | ||
return this._getAllKeys()[index]; | return this._getAllKeys()[index]; | ||
+ | }; | ||
+ | var _LocalObjectStorage_keyPrefix; | ||
+ | _LocalObjectStorage_keyPrefix = new WeakMap(); | ||
+ | LocalObjectStorage.plugins = { | ||
+ | transformations: { | ||
+ | get list() { | ||
+ | return externalTransformations.map(function (transformation) { return Object.assign(Object.create(null), transformation); }); | ||
+ | }, | ||
+ | add: function (_a) { | ||
+ | var type = _a.type, match = _a.match, decode = _a.decode, encode = _a.encode; | ||
+ | if (type.includes("|")) { | ||
+ | console.error("LocalObjectStorage can't accept type name \"".concat(type, "\" including \"|\", skip...")); | ||
+ | return false; | ||
+ | } | ||
+ | if (type === "JSON") { | ||
+ | console.error("LocalObjectStorage can't accept type name \"".concat(type, "\", skip...")); | ||
+ | return false; | ||
+ | } | ||
+ | if (builtinTransformations.concat(LocalObjectStorage.plugins.transformations.list).filter(function (_a) { | ||
+ | var eType = _a.type; | ||
+ | return eType === type; | ||
+ | }).length > 0) { | ||
+ | console.error("LocalObjectStorage can't accept duplicated type name \"".concat(type, "\", skip...")); | ||
+ | return false; | ||
+ | } | ||
+ | if (typeof match !== "function" || typeof decode !== "function" || typeof encode !== "function") { | ||
+ | console.error("LocalObjectStorage can't accept broken transformation [ type: \"".concat(type, "\", match: ").concat(typeof match, ", decode: ").concat(typeof decode, ", encode: ").concat(typeof encode, " ], skip...")); | ||
+ | return false; | ||
+ | } | ||
+ | externalTransformations.push({ type: type, match: match, decode: decode, encode: encode }); | ||
+ | return true; | ||
+ | } | ||
+ | } | ||
}; | }; | ||
return LocalObjectStorage; | return LocalObjectStorage; | ||
}()); | }()); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
window.LocalObjectStorage = LocalObjectStorage; | window.LocalObjectStorage = LocalObjectStorage; | ||
})(); | })(); | ||
+ | |||
+ | /* </pre> */ |
Latest revision as of 18:17, 5 September 2022
/* <pre> */ /** * ------------------------------------------------------------------------- * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!! * ------------------------------------------------------------------------- */ var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/LocalObjectStorage/MediaWiki:Gadget-LocalObjectStorage.js|user=[[U:AnnAngela]]|longId=7912a381cdf9c3e9286060bff474c0cd226579f1|shortId=7912a38|message=refactor(LocalObjectStorage): 使用最新语法糖重构}}'; "use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __values = (this && this.__values) || function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; (function () { var builtinTransformations = [ { type: "undefined", match: function (t) { return typeof t === "undefined"; }, encode: function () { return "undefined"; }, decode: function () { return undefined; } }, { type: "bigint", match: function (t) { return typeof t === "bigint"; }, encode: function (b) { return "".concat(b); }, decode: function (b) { return BigInt(b); } }, { type: "date", match: function (t) { return t instanceof Date; }, encode: function (d) { return d.toISOString(); }, decode: function (d) { return new Date(d); } }, { type: "set", match: function (t) { return t instanceof Set; }, encode: function (s) { return JSON.stringify(__spreadArray([], __read(s.values()), false)); }, decode: function (s) { return new Set(JSON.parse(s)); } }, { type: "map", match: function (t) { return t instanceof Map; }, encode: function (m) { return JSON.stringify(__spreadArray([], __read(m.entries()), false)); }, decode: function (m) { return new Map(JSON.parse(m)); } }, { type: "regexp", match: function (t) { return t instanceof RegExp; }, encode: function (r) { return "".concat(r); }, decode: function (r) { return new RegExp(r.slice(1, r.length - 1)); } }, ]; var externalTransformations = []; var LocalObjectStorage = (function () { function LocalObjectStorage(prefix) { if (prefix === void 0) { prefix = ""; } _LocalObjectStorage_keyPrefix.set(this, void 0); if (prefix === "default") { throw new Error("LocalObjectStorage can't accept prefix \"".concat(prefix, "\".")); } if (prefix.includes("/")) { throw new Error("LocalObjectStorage can't accept prefix \"".concat(prefix, "\" including \"/\".")); } __classPrivateFieldSet(this, _LocalObjectStorage_keyPrefix, "AnnTool-localObjectStorage/".concat((prefix === null || prefix === void 0 ? void 0 : prefix.length) > 0 ? "".concat(prefix, "/") : "default/"), "f"); } Object.defineProperty(LocalObjectStorage.prototype, "_keyPrefix", { get: function () { return __classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f"); }, enumerable: false, configurable: true }); LocalObjectStorage.prototype._getAllKeys = function () { var _this = this; return Object.keys(localStorage).filter(function (key) { return key.startsWith(__classPrivateFieldGet(_this, _LocalObjectStorage_keyPrefix, "f")); }); }; Object.defineProperty(LocalObjectStorage.prototype, "length", { get: function () { return this._getAllKeys().length; }, enumerable: false, configurable: true }); LocalObjectStorage.prototype.getItem = function (key, fallback) { var e_1, _a; var value = localStorage.getItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key)); if (value === null) { return fallback || value; } try { for (var _b = __values(builtinTransformations.concat(LocalObjectStorage.plugins.transformations.list)), _c = _b.next(); !_c.done; _c = _b.next()) { var _d = _c.value, type = _d.type, decode = _d.decode; if (type.includes("|")) { console.error("LocalObjectStorage can't accept type name \"".concat(type, "\" including \"|\", skip...")); continue; } if (type === "JSON") { console.error("LocalObjectStorage can't accept type name \"".concat(type, "\", skip...")); continue; } if (value.startsWith("".concat(type, "|"))) { try { return decode(value.replace("".concat(type, "|"), "")); } catch (e) { console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" to type \"").concat(type, "\" and skip...")); } } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b["return"])) _a.call(_b); } finally { if (e_1) throw e_1.error; } } try { return JSON.parse(value.replace("JSON|", "")); } catch (e) { console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" to JSON and return raw value...")); return value; } }; LocalObjectStorage.prototype.setItem = function (key, value) { var e_2, _a; try { for (var _b = __values(builtinTransformations.concat(LocalObjectStorage.plugins.transformations.list)), _c = _b.next(); !_c.done; _c = _b.next()) { var _d = _c.value, type = _d.type, match = _d.match, encode = _d.encode; if (type.includes("|")) { console.error("LocalObjectStorage can't accept type name \"".concat(type, "\" including \"|\", skip...")); continue; } if (type === "JSON") { console.error("LocalObjectStorage can't accept type name \"".concat(type, "\", skip...")); continue; } if (match(value)) { try { localStorage.setItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key), "".concat(type, "|").concat(encode(value))); return; } catch (e) { console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" from type \"").concat(type, "\" and skip...")); } } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_c && !_c.done && (_a = _b["return"])) _a.call(_b); } finally { if (e_2) throw e_2.error; } } try { localStorage.setItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key), "JSON|".concat(JSON.stringify(value))); return; } catch (e) { console.error("LocalObjectStorage can's transform value of key \"".concat(key, "\" from JSON and store raw value...")); localStorage.setItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key), value); } }; LocalObjectStorage.prototype.removeItem = function (key) { localStorage.removeItem("".concat(__classPrivateFieldGet(this, _LocalObjectStorage_keyPrefix, "f")).concat(key)); }; LocalObjectStorage.prototype.clear = function () { this._getAllKeys().forEach(function (key) { localStorage.removeItem(key); }); this.length = 0; }; LocalObjectStorage.prototype.key = function (index) { return this._getAllKeys()[index]; }; var _LocalObjectStorage_keyPrefix; _LocalObjectStorage_keyPrefix = new WeakMap(); LocalObjectStorage.plugins = { transformations: { get list() { return externalTransformations.map(function (transformation) { return Object.assign(Object.create(null), transformation); }); }, add: function (_a) { var type = _a.type, match = _a.match, decode = _a.decode, encode = _a.encode; if (type.includes("|")) { console.error("LocalObjectStorage can't accept type name \"".concat(type, "\" including \"|\", skip...")); return false; } if (type === "JSON") { console.error("LocalObjectStorage can't accept type name \"".concat(type, "\", skip...")); return false; } if (builtinTransformations.concat(LocalObjectStorage.plugins.transformations.list).filter(function (_a) { var eType = _a.type; return eType === type; }).length > 0) { console.error("LocalObjectStorage can't accept duplicated type name \"".concat(type, "\", skip...")); return false; } if (typeof match !== "function" || typeof decode !== "function" || typeof encode !== "function") { console.error("LocalObjectStorage can't accept broken transformation [ type: \"".concat(type, "\", match: ").concat(typeof match, ", decode: ").concat(typeof decode, ", encode: ").concat(typeof encode, " ], skip...")); return false; } externalTransformations.push({ type: type, match: match, decode: decode, encode: encode }); return true; } } }; return LocalObjectStorage; }()); window.LocalObjectStorage = LocalObjectStorage; })(); /* </pre> */