UNPKG

react-pinia

Version:

šŸBuilding a Minimal State Management for React

13 lines (12 loc) • 4.96 kB
(function(i,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],a):(i=typeof globalThis!="undefined"?globalThis:i||self,a(i["react-pinia"]={},i.React))})(this,function(i,a){"use strict";var X=Object.defineProperty;var Z=(i,a,g)=>a in i?X(i,a,{enumerable:!0,configurable:!0,writable:!0,value:g}):i[a]=g;var R=(i,a,g)=>(Z(i,typeof a!="symbol"?a+"":a,g),g);function g(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var E=g(a);const j=e=>new Map([["[object Function]","function"],["[object Undefined]","undefined"],["[object Boolean]","boolean"],["[object Number]","number"],["[object String]","string"],["[object Array]","array"],["[object Date]","date"],["[object RegExp]","regExp"],["[object Null]","null"],["[object Object]","object"],["[object Symbol]","symbol"],["[object Promise]","promise"]]).get(Object.prototype.toString.call(e)),N=(e,t)=>{if(e===t)return!0;for(let r=0;r<e.length;r++)if(!Object.is(e[r],t[r]))return!1;return!0},p=new WeakMap,m=new WeakMap;function O(e,t,r,n=!0){const o=p.get(t);if(o)return o;if(m.has(t))return t;const f=new Proxy(t,{get(c,s,u){if(!n)return Reflect.get(c,s);const l=Reflect.get(c,s,u);return j(l)==="object"||j(l)==="array"?O(e,l,r,n):Reflect.get(c,s)},set(c,s,u){if(c[s]===u)return Reflect.set(c,s,u);{const l=Reflect.set(c,s,u);return r(s,e),l}},deleteProperty(c,s){const u=Reflect.deleteProperty(c,s);return r(s,e),u}});return p.set(t,f),m.set(f,t),f}function C(){const[,e]=a.useState({});return a.useCallback(()=>e({}),[])}function M(e,t){const{current:r}=a.useRef({deps:t,obj:void 0,initialized:!1});return(r.initialized===!1||!N(r.deps,t))&&(r.deps=t,r.obj=e(),r.initialized=!0),r.obj}class I{constructor(){R(this,"listeners",new Map)}on(t,r){this.listeners.has(t)||this.listeners.set(t,[]),this.listeners.get(t).push(r)}emit(t,r){const n=this.listeners.get(t);n&&n.forEach(o=>o(r))}off(t,r){const n=this.listeners.get(t);if(n)if(r){const o=n.indexOf(r);o!==-1&&n.splice(o,1)}else this.listeners.set(t,[])}}function T(e){let t=localStorage;"storage"in e&&e.storage==="sessionStorage"&&(t=sessionStorage);try{const r=t.getItem(e.key);if(r)return JSON.parse(r)}catch{}return null}function k(e,t){let r=localStorage;"storage"in e&&e.storage==="sessionStorage"&&(r=sessionStorage),r.setItem(e.key,JSON.stringify(t))}function y(e){const t=Symbol(),r=new I,n=e.persist,o=Object.assign({},e.state(),n&&T(n)),c=O(null,o,b=>{r.emit(t,b)},!0),s=Object.create(c);e.actions&&Object.keys(e.actions).forEach(b=>{s[b]=e.actions[b].bind(c)});function u(b){e.getters&&Object.keys(e.getters).map(P=>{s[P]=e.getters&&e.getters[P](b)})}u(o);function l(){const b=C();return a.useEffect(()=>(r.on(t,()=>{n&&k(n,c),u(s),b()}),()=>{r.off(t)}),[]),s}return l.get=function(){return c},l}var S={exports:{}},d={};/* object-assign (c) Sindre Sorhus @license MIT */var v=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable;function L(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function z(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(f){return t[f]});if(n.join("")!=="0123456789")return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(f){o[f]=f}),Object.keys(Object.assign({},o)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}z();/** @license React v17.0.2 * react-jsx-runtime.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var A=E.default,h=60103;if(d.Fragment=60107,typeof Symbol=="function"&&Symbol.for){var _=Symbol.for;h=_("react.element"),d.Fragment=_("react.fragment")}var D=A.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,J=Object.prototype.hasOwnProperty,W={key:!0,ref:!0,__self:!0,__source:!0};function w(e,t,r){var n,o={},f=null,c=null;r!==void 0&&(f=""+r),t.key!==void 0&&(f=""+t.key),t.ref!==void 0&&(c=t.ref);for(n in t)J.call(t,n)&&!W.hasOwnProperty(n)&&(o[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)o[n]===void 0&&(o[n]=t[n]);return{$$typeof:h,type:e,key:f,ref:c,props:o,_owner:D.current}}d.jsx=w,d.jsxs=w,S.exports=d;const B=S.exports.jsx,x=a.createContext({}),G=({store:e,children:t})=>{const r=a.useRef(e),n=M(()=>r.current,[]);return B(x.Provider,{value:n,children:t})},H=e=>{const t=Object.create(null);return Object.keys(e).forEach(r=>{r in t||(t[r]=y(e[r]))}),t},Y=e=>{const t=a.useContext(x);return e in t?t[e]():null},Q="2.7.3";i.Provider=G,i.createStore=H,i.defineStore=y,i.useStore=Y,i.version=Q,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});