UNPKG

4.56 kBJavaScriptView Raw
1var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2 if (kind === "m") throw new TypeError("Private method is not writable");
3 if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4 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");
5 return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6};
7var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8 if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9 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");
10 return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11};
12var _MiddlewareCookieStore_promise, _MiddlewareCookieStore_store;
13import { ExtendablePromise } from "@worker-tools/extendable-promise";
14import { cookiesFrom } from "../cookies.js";
15const encode = encodeURIComponent;
16function decodeItem(item) {
17 if (item) {
18 item.name = decodeURIComponent(item.name);
19 item.value = decodeURIComponent(item.value);
20 }
21 return item;
22}
23/**
24 * A more opinionated cookie store implementation that
25 * - URI-(en|de)codes cookie values and
26 * - provides a promise that resolves when all async operations associated with this store have settled.
27 */
28export class MiddlewareCookieStore {
29 constructor(store, requestDuration) {
30 _MiddlewareCookieStore_promise.set(this, void 0);
31 _MiddlewareCookieStore_store.set(this, void 0);
32 __classPrivateFieldSet(this, _MiddlewareCookieStore_store, store, "f");
33 __classPrivateFieldSet(this, _MiddlewareCookieStore_promise, new ExtendablePromise(requestDuration), "f");
34 }
35 async get(options) {
36 return decodeItem(await __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").get(options));
37 }
38 async getAll(options) {
39 return (await __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").getAll(options)).map(decodeItem);
40 }
41 set(name, value) {
42 let res;
43 if (typeof name === 'string' && typeof value === 'string') {
44 res = __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").set(encode(name), encode(value));
45 }
46 else if (name && typeof name === 'object') {
47 const options = name;
48 options.name = encode(options.name);
49 options.value = encode(options.value);
50 res = __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").set(options);
51 }
52 else
53 throw Error('Illegal invocation');
54 __classPrivateFieldGet(this, _MiddlewareCookieStore_promise, "f").waitUntil(res);
55 return res;
56 }
57 delete(options) {
58 const res = __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").delete(options);
59 __classPrivateFieldGet(this, _MiddlewareCookieStore_promise, "f").waitUntil(res);
60 return res;
61 }
62 addEventListener(type, callback, options) {
63 __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").addEventListener(type, callback, options);
64 }
65 dispatchEvent(event) {
66 return __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").dispatchEvent(event);
67 }
68 removeEventListener(type, callback, options) {
69 __classPrivateFieldGet(this, _MiddlewareCookieStore_store, "f").removeEventListener(type, callback, options);
70 }
71 /** @deprecated Name of this property might change */
72 get settled() { return __classPrivateFieldGet(this, _MiddlewareCookieStore_promise, "f").settled; }
73 /** @deprecated Name of this property might change */
74 get allSettledPromise() { return Promise.resolve(__classPrivateFieldGet(this, _MiddlewareCookieStore_promise, "f")); }
75 /**
76 * If you've made changes to the store and would like to access the current cookies as an object,
77 * it is provided as a promise here (TODO:)
78 * @deprecated This method might change names
79 */
80 get updatedCookies() {
81 return cookiesFrom(this);
82 }
83}
84_MiddlewareCookieStore_promise = new WeakMap(), _MiddlewareCookieStore_store = new WeakMap();
85//# sourceMappingURL=middleware-cookie-store.js.map
\No newline at end of file