@descope/sdk-helpers
Version:
Descope JavaScript SDK helpers
3 lines (2 loc) • 2.29 kB
JavaScript
import{__classPrivateFieldGet as t,__classPrivateFieldSet as e}from"tslib";function r(...t){return e=>t.reduce(((t,e)=>e(t)),e)}const n=t=>{const e=document.createElement("template");return e.innerHTML=t,e},s=(...t)=>t.join("/").replace(/\/+/g,"/"),i=(t,e)=>t.length===e.length&&t.every(((t,r)=>t===e[r])),o=t=>{let e,r;return(...n)=>(e&&i(e,n)||(e=n,r=t(...n)),r)},c=t=>t.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_.]+/g,"-").toLowerCase(),u=t=>0===Object.keys(t).length&&t.constructor===Object,f=t=>(e,...r)=>e.reduce(((e,n,s)=>{var i;return`${e}${n}${(null===(i=null==r?void 0:r[s])||void 0===i?void 0:i[t>1?1:0])||""}`}),""),l=(t,e=500)=>{let r;return function(...n){clearTimeout(r),r=setTimeout((()=>t.apply(this,n)),e)}},h=t=>{const e=Symbol((t=>{const e=t.toString();let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r&=r;return r.toString(16)})(t));return r=>{if(r[e])return r;const n=t(r);return n[e]=!0,n}};var a,b,g,p;function j(t,e){const r=Object.getOwnPropertyNames(t),n=Object.getOwnPropertyNames(e);if(r.length!==n.length)return!1;for(let n=0;n<r.length;n+=1){const s=r[n],i=t[s],o=e[s];if(null===i||null===o){if(i!==o)return!1}else if("object"==typeof i&&"object"==typeof o){if(!j(i,o))return!1}else if(i!==o)return!1}return!0}class d{constructor(r={},{forceUpdate:n=!1}={}){a.set(this,void 0),b.set(this,{}),g.set(this,0),p.set(this,!0),this.update=r=>{const n="function"==typeof r?r(t(this,a,"f")):r,s=Object.assign(Object.assign({},t(this,a,"f")),n);if(t(this,p,"f")||!j(t(this,a,"f"),s)){const r=t(this,a,"f");e(this,a,s,"f"),Object.freeze(t(this,a,"f")),setTimeout((()=>{Object.values(t(this,b,"f")).forEach((t=>t(s,r,((t,e)=>r=>t[r]!==e[r])(s,r))))}),0)}},e(this,a,r,"f"),e(this,p,n,"f")}get current(){return Object.assign({},t(this,a,"f"))}subscribe(r){return e(this,g,t(this,g,"f")+1,"f"),t(this,b,"f")[t(this,g,"f")]=r,t(this,g,"f").toString()}unsubscribe(e){const r=!!t(this,b,"f")[e];return r&&delete t(this,b,"f")[e],r}unsubscribeAll(){return e(this,b,{},"f"),!0}}a=new WeakMap,b=new WeakMap,g=new WeakMap,p=new WeakMap;export{d as State,i as compareArrays,r as compose,h as createSingletonMixin,n as createTemplate,l as debounce,u as isObjEmpty,c as kebabCase,s as pathJoin,f as pluralize,o as withMemCache};
//# sourceMappingURL=index.esm.js.map