@rkrupinski/stan 1.3.3-rc3 → 1.3.3-rc5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +1 -0
- package/dist/index.js +1 -1
- package/dist/react.esm.js +1 -0
- package/dist/react.js +1 -1
- package/dist/store-CtFDhBEG.js +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,d as t,R as s,a,s as n,e as c,b as i,c as o,E as l}from"./store-BlOVE6Q3.js";export{D as DEFAULT_STORE,S as Store,m as makeStore,r as refresh,f as reset}from"./store-BlOVE6Q3.js";class u extends Error{}class h{#e;#t;constructor(e){this.#e=new Map,this.#t=e}#s(){const e=this.#e.keys().next().value;e&&(this.#e.get(e)?.controller.abort(),this.#e.delete(e))}has(e){return this.#e.has(e)}get(e){const t=this.#e.get(e);if(t)return this.#e.delete(e),this.#e.set(e,t),t.value}set(e,t){this.#e.has(e)?this.#e.delete(e):this.#e.size>=this.#t&&this.#s();const s=new AbortController;this.#e.set(e,{value:t(s.signal),controller:s})}delete(e){return this.#e.delete(e)}clear(){this.#e.clear()}}const d=(t,{cachePolicy:s={type:"keep-all"},keyMaker:a=e}={})=>{const r=(e=>{switch(e.type){case"keep-all":return new h(Number.POSITIVE_INFINITY);case"most-recent":return new h(1);case"lru":return new h(e.maxSize);default:return e}})(s);return e=>{const s=a(e);return r.has(s)||r.set(s,t(e)),r.get(s)}};let g=0;const v=(e,{tag:r,effects:n,areValuesEqual:c=t}={})=>{const i=e,o=`a${r?`-${r}`:""}-${g++}`;return d((e=>()=>{const t=new Set,r=new Set;e.value.set(o,i),e.version.set(o,1);const l=(s=!1)=>n=>{if(!e.initialized.get(o))return;const i=e.value.get(o),l=a(n)?n(i):n;c(i,l)||((()=>{const t=e.version.get(o)??0;e.version.set(o,t+1)})(),e.value.set(o,l),[...t].forEach((e=>e(l))),s||r.forEach((e=>e(l))))},u=l(),h=l(!0);return{key:o,get:()=>(e.initialized.get(o)||(e.value.set(o,i),n?.forEach((t=>t({init(t){e.initialized.get(o)||e.value.set(o,t)},set:h,onSet(e){r.add(e)}}))),e.initialized.set(o,!0)),e.value.get(o)),set:u,subscribe:e=>(t.add(e),()=>{t.delete(e)}),[s](){u(i)}}}))},k=(e,{tag:t,...s}={})=>d((r=>()=>v(a(e)?e(r):e,{tag:a(t)?t(r):t,...s})),{keyMaker:n});let y=0;const z=(e,{tag:s,areValuesEqual:a=t}={},{[l]:r}={})=>{const n=`s${s?`-${s}`:""}-${y++}`;return d((t=>()=>{const s=new Map;t.deps.set(n,s);const l=new Set,h=new Set;r?.addEventListener("abort",(()=>{c(t,n)}),{once:!0});let d=null;const g=new Set,v=e=>{const s=t.deps.get(e);if(!s||!s.size)return!1;for(const[e,a]of s.entries())if(t.version.get(e)!==a)return!0;for(const e of s.keys())if(v(e))return!0;return!1};let f=0;const k=()=>{s.clear(),l.clear(),h.forEach((e=>e())),h.clear(),d?.abort(new u),d=new AbortController;const r=e({get:(c=++f,e=>{const a=e(t),r=a.get();if(!s.has(a.key)&&c===f){s.set(a.key,t.version.get(a.key)??0);const e=()=>a.subscribe((()=>{y()}));l.add(e),t.mounted.get(n)&&h.add(e())}return r}),signal:d.signal});var c;if(!(!t.value.has(n)||!a(t.value.get(n),r)))return;if((()=>{const e=t.version.get(n)??0;t.version.set(n,e+1)})(),t.value.set(n,r),[...g].forEach((e=>e(t.value.get(n)))),!o(r))return;const i=t.version.get(n);r.then(void 0,(()=>{i===t.version.get(n)&&t.initialized.set(n,!1)}))},y=()=>{t.mounted.get(n)?k():t.initialized.set(n,!1)};return{key:n,get(){switch(!0){case!t.initialized.get(n):k(),t.initialized.set(n,!0);break;case v(n):k()}return t.value.get(n)},subscribe:e=>(0===g.size&&(l.forEach((e=>{h.add(e())})),t.mounted.set(n,!0)),g.add(e),function(){g.delete(e),0===g.size&&(h.forEach((e=>{e()})),h.clear(),t.mounted.set(n,!1))}),[i](){y()}}}))},w=(e,{cachePolicy:t,tag:s,...r}={})=>d((t=>n=>z(e(t),{tag:a(s)?s(t):s,...r},{[l]:n})),{cachePolicy:t,keyMaker:n});export{u as Aborted,v as atom,k as atomFamily,z as selector,w as selectorFamily};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var e=require("./store-CtFDhBEG.js");class t extends Error{}class s{#e;#t;constructor(e){this.#e=new Map,this.#t=e}#s(){const e=this.#e.keys().next().value;e&&(this.#e.get(e)?.controller.abort(),this.#e.delete(e))}has(e){return this.#e.has(e)}get(e){const t=this.#e.get(e);if(t)return this.#e.delete(e),this.#e.set(e,t),t.value}set(e,t){this.#e.has(e)?this.#e.delete(e):this.#e.size>=this.#t&&this.#s();const s=new AbortController;this.#e.set(e,{value:t(s.signal),controller:s})}delete(e){return this.#e.delete(e)}clear(){this.#e.clear()}}const r=(t,{cachePolicy:r={type:"keep-all"},keyMaker:a=e.identity}={})=>{const n=(e=>{switch(e.type){case"keep-all":return new s(Number.POSITIVE_INFINITY);case"most-recent":return new s(1);case"lru":return new s(e.maxSize);default:return e}})(r);return e=>{const s=a(e);return n.has(s)||n.set(s,t(e)),n.get(s)}};let a=0;const n=(t,{tag:s,effects:n,areValuesEqual:i=e.dejaVu}={})=>{const c=t,o=`a${s?`-${s}`:""}-${a++}`;return r((t=>()=>{const s=new Set,r=new Set;t.value.set(o,c),t.version.set(o,1);const a=(a=!1)=>n=>{if(!t.initialized.get(o))return;const c=t.value.get(o),l=e.isFunction(n)?n(c):n;i(c,l)||((()=>{const e=t.version.get(o)??0;t.version.set(o,e+1)})(),t.value.set(o,l),[...s].forEach((e=>e(l))),a||r.forEach((e=>e(l))))},l=a(),u=a(!0);return{key:o,get:()=>(t.initialized.get(o)||(t.value.set(o,c),n?.forEach((e=>e({init(e){t.initialized.get(o)||t.value.set(o,e)},set:u,onSet(e){r.add(e)}}))),t.initialized.set(o,!0)),t.value.get(o)),set:l,subscribe:e=>(s.add(e),()=>{s.delete(e)}),[e.RESET_TAG](){l(c)}}}))};let i=0;const c=(s,{tag:a,areValuesEqual:n=e.dejaVu}={},{[e.ERASE_TAG]:c}={})=>{const o=`s${a?`-${a}`:""}-${i++}`;return r((r=>()=>{const a=new Map;r.deps.set(o,a);const i=new Set,l=new Set;c?.addEventListener("abort",(()=>{e.erase(r,o)}),{once:!0});let u=null;const h=new Set,d=e=>{const t=r.deps.get(e);if(!t||!t.size)return!1;for(const[e,s]of t.entries())if(r.version.get(e)!==s)return!0;for(const e of t.keys())if(d(e))return!0;return!1};let g=0;const v=()=>{a.clear(),i.clear(),l.forEach((e=>e())),l.clear(),u?.abort(new t),u=new AbortController;const c=s({get:(d=++g,e=>{const t=e(r),s=t.get();if(!a.has(t.key)&&d===g){a.set(t.key,r.version.get(t.key)??0);const e=()=>t.subscribe((()=>{f()}));i.add(e),r.mounted.get(o)&&l.add(e())}return s}),signal:u.signal});var d;if(!(!r.value.has(o)||!n(r.value.get(o),c)))return;if((()=>{const e=r.version.get(o)??0;r.version.set(o,e+1)})(),r.value.set(o,c),[...h].forEach((e=>e(r.value.get(o)))),!e.isPromiseLike(c))return;const v=r.version.get(o);c.then(void 0,(()=>{v===r.version.get(o)&&r.initialized.set(o,!1)}))},f=()=>{r.mounted.get(o)?v():r.initialized.set(o,!1)};return{key:o,get(){switch(!0){case!r.initialized.get(o):v(),r.initialized.set(o,!0);break;case d(o):v()}return r.value.get(o)},subscribe:e=>(0===h.size&&(i.forEach((e=>{l.add(e())})),r.mounted.set(o,!0)),h.add(e),function(){h.delete(e),0===h.size&&(l.forEach((e=>{e()})),l.clear(),r.mounted.set(o,!1))}),[e.REFRESH_TAG](){f()}}}))};exports.DEFAULT_STORE=e.DEFAULT_STORE,exports.Store=e.Store,exports.makeStore=e.makeStore,exports.refresh=e.refresh,exports.reset=e.reset,exports.Aborted=t,exports.atom=n,exports.atomFamily=(t,{tag:s,...a}={})=>r((r=>()=>n(e.isFunction(t)?t(r):t,{tag:e.isFunction(s)?s(r):s,...a})),{keyMaker:e.stableStringify}),exports.selector=c,exports.selectorFamily=(t,{cachePolicy:s,tag:a,...n}={})=>r((s=>r=>c(t(s),{tag:e.isFunction(a)?a(s):a,...n},{[e.ERASE_TAG]:r})),{cachePolicy:s,keyMaker:e.stableStringify});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as t,useMemo as o,useRef as s,useState as n,useEffect as c,useCallback as u}from"react";import{D as a,m as i,r as m,f as p}from"./store-BlOVE6Q3.js";const l=e({store:a}),d=({store:e,children:t})=>{const s=o((()=>({store:e??i()})),[e]);return r(l.Provider,{value:s,children:t})},g=()=>t(l),y=r=>{const{store:e}=g(),t=r(e),o=s(t),[u,a]=n((()=>t.get()));return c((()=>(t!==o.current&&(o.current=t,a(t.get())),t.subscribe(a))),[t]),u},f=r=>{const{store:e}=g();return r(e).set},h=r=>[y(r),f(r)],v=r=>{const e=y(r),[t,o]=n({type:"loading"});return c((()=>{let r=!0;return o({type:"loading"}),e.then((e=>{r&&o({type:"ready",value:e})}),(e=>{r&&o({type:"error",reason:e?.message??"unknown"})})),()=>{r=!1}}),[e]),t},b=r=>{const{store:e}=g(),t=r(e);return u((()=>{m(t)}),[t])},j=r=>{const{store:e}=g(),t=r(e);return u((()=>{p(t)}),[t])};export{d as StanProvider,f as useSetStanValue,h as useStan,g as useStanCtx,b as useStanRefresh,j as useStanReset,y as useStanValue,v as useStanValueAsync};
|
package/dist/react.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./store-CtFDhBEG.js");const s=t.createContext({store:r.DEFAULT_STORE}),n=()=>t.useContext(s),u=e=>{const{store:r}=n(),s=e(r),u=t.useRef(s),[o,a]=t.useState((()=>s.get()));return t.useEffect((()=>(s!==u.current&&(u.current=s,a(s.get())),s.subscribe(a))),[s]),o},o=e=>{const{store:t}=n();return e(t).set};exports.StanProvider=({store:n,children:u})=>{const o=t.useMemo((()=>({store:n??r.makeStore()})),[n]);return e.jsx(s.Provider,{value:o,children:u})},exports.useSetStanValue=o,exports.useStan=e=>[u(e),o(e)],exports.useStanCtx=n,exports.useStanRefresh=e=>{const{store:s}=n(),u=e(s);return t.useCallback((()=>{r.refresh(u)}),[u])},exports.useStanReset=e=>{const{store:s}=n(),u=e(s);return t.useCallback((()=>{r.reset(u)}),[u])},exports.useStanValue=u,exports.useStanValueAsync=e=>{const r=u(e),[s,n]=t.useState({type:"loading"});return t.useEffect((()=>{let e=!0;return n({type:"loading"}),r.then((t=>{e&&n({type:"ready",value:t})}),(t=>{e&&n({type:"error",reason:t?.message??"unknown"})})),()=>{e=!1}}),[r]),s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var t,r;var n=e(r?t:(r=1,t=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var r,n="boolean"==typeof t.cycles&&t.cycles,o=t.cmp&&(r=t.cmp,function(e){return function(t,n){var o={key:t,value:e[t]},i={key:n,value:e[n]};return r(o,i)}}),i=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var r,s;if(Array.isArray(t)){for(s="[",r=0;r<t.length;r++)r&&(s+=","),s+=e(t[r])||"null";return s+"]"}if(null===t)return"null";if(-1!==i.indexOf(t)){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var u=i.push(t)-1,c=Object.keys(t).sort(o&&o(t));for(s="",r=0;r<c.length;r++){var l=c[r],p=e(t[l]);p&&(s&&(s+=","),s+=JSON.stringify(l)+":"+p)}return i.splice(u,1),"{"+s+"}"}}(e)}));const o=Symbol("@@refresh@@"),i=Symbol("@@reset@@"),s=Symbol("@@erase@@"),u=["[object AsyncFunction]","[object AsyncGeneratorFunction]","[object GeneratorFunction]","[object Function]"],c=e=>u.includes(Object.prototype.toString.call(e));class l{value=new Map;version=new Map;mounted=new Map;initialized=new Map;deps=new Map}const p=()=>new l,a=p();exports.DEFAULT_STORE=a,exports.ERASE_TAG=s,exports.REFRESH_TAG=o,exports.RESET_TAG=i,exports.Store=l,exports.dejaVu=(e,t)=>e===t,exports.erase=(e,t)=>{e.deps.delete(t),e.value.delete(t),e.version.delete(t),e.mounted.delete(t),e.initialized.delete(t)},exports.identity=e=>e,exports.isFunction=c,exports.isPromiseLike=e=>!!e&&c(e.then),exports.makeStore=p,exports.refresh=e=>{e[o]()},exports.reset=e=>{e[i]()},exports.stableStringify=n;
|
package/package.json
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rkrupinski/stan",
|
|
3
3
|
"description": "Minimal, type-safe state management",
|
|
4
|
-
"version": "1.3.3-
|
|
4
|
+
"version": "1.3.3-rc5",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.esm.js",
|
|
6
7
|
"types": "./dist/index.d.ts",
|
|
7
8
|
"files": [
|
|
8
9
|
"dist"
|
|
9
10
|
],
|
|
10
11
|
"exports": {
|
|
11
12
|
".": {
|
|
12
|
-
"import": "./dist/index.js",
|
|
13
|
+
"import": "./dist/index.esm.js",
|
|
14
|
+
"require": "./dist/index.js",
|
|
13
15
|
"types": "./dist/index.d.ts"
|
|
14
16
|
},
|
|
15
17
|
"./react": {
|
|
16
|
-
"import": "./dist/react.js",
|
|
18
|
+
"import": "./dist/react.esm.js",
|
|
19
|
+
"require": "./dist/react.js",
|
|
17
20
|
"types": "./dist/react.d.ts"
|
|
18
21
|
}
|
|
19
22
|
},
|
|
@@ -21,9 +24,6 @@
|
|
|
21
24
|
"*": {
|
|
22
25
|
"react": [
|
|
23
26
|
"dist/react.d.ts"
|
|
24
|
-
],
|
|
25
|
-
"*": [
|
|
26
|
-
"dist/*"
|
|
27
27
|
]
|
|
28
28
|
}
|
|
29
29
|
},
|