crnc
Version:
currency conversion and functionality for the web
44 lines • 1.57 kB
JavaScript
import { mockBasicStorage } from "./mock-basic-storage.js";
import { defaultPersistenceStorageKeys, oneHour } from "../ecommerce/currency-converter-defaults.js";
const storageKeys = defaultPersistenceStorageKeys;
export const mockPersistence = {
standard: () => ({
storageKeys,
cacheLifespan: oneHour,
storage: mockBasicStorage(),
}),
multipleTabsSharingOneStorage: () => {
const storage = mockBasicStorage();
const tabs = new Set();
function makeTab() {
let trigger = () => {
throw new Error(`cannot trigger storage change before listenForStorageChange is setup`);
};
const triggerStorageChangeOnThisTab = () => trigger();
const persistence = ({
storage,
storageKeys,
cacheLifespan: oneHour,
});
const tab = {
persistence,
triggerStorageChangeOnThisTab,
triggerStorageChangeOnAllOtherTabs: () => {
for (const t of tabs)
if (t !== tab) {
t.triggerStorageChangeOnThisTab();
}
},
listenForStorageChange: (({ reloadCurrencyPreference }) => {
trigger = () => reloadCurrencyPreference();
}),
};
tabs.add(tab);
return tab;
}
return {
makeTab,
};
},
};
//# sourceMappingURL=mock-persistence.js.map