@nent/core
Version:
4 lines • 1.41 kB
JavaScript
/*!
* NENT 2022
*/
import{M as a}from"./mutex-e5645c85.js";import{g as t}from"./factory-acbf0d3d.js";import{I as n}from"./memory-0d63dacd.js";import{c as s}from"./index-4bfabbbd.js";var i;!function(a){a.once="once",a.always="always",a.optional="optional"}(i||(i={}));const o=s({storageProvider:"storage",storedVisits:[],sessionVisits:[]}),{state:r}=o,c=new n,e=new n;function w(a){return JSON.parse(a||"[]")}function u(a){return JSON.stringify(a||"[]")}const f=new a;async function y(){return await f.dispatch((async()=>{var a=await t("session")||c;const n=await a.get("visits");return n?w(n):[]}))}const m=new a;async function d(){return await m.dispatch((async()=>{var a=await t(r.storageProvider)||e;const n=await a.get("visits");return n?w(n):[]}))}async function v(a){return[...await y(),...await d()].includes(a)}async function b(a,n){a==i.once?await async function(a){const n=await d();n.includes(a)||await async function(a){return await m.dispatch((async()=>{var n=await t(r.storageProvider)||e;await n.set("visits",u(a))}))}([...new Set([...n,a])])}(n):await S(n)}async function p(){const a=await y(),t=await d();return[...new Set([...a,...t])]}async function S(a){const n=await y();n.includes(a)||await async function(a){return await f.dispatch((async()=>{const n=await t("session")||c;await n.set("visits",u(a))}))}([...new Set([...n,a])])}export{i as V,d as a,p as b,y as g,v as h,S as m,b as r}