UNPKG

zustand

Version:

🐻 Bear necessities for state management in React

57 lines (45 loc) 1.63 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.zustandVanilla = {})); })(this, (function (exports) { 'use strict'; var createStoreImpl = function createStoreImpl(createState) { var state; var listeners = new Set(); var setState = function setState(partial, replace) { var nextState = typeof partial === 'function' ? partial(state) : partial; if (nextState !== state) { var _previousState = state; state = replace ? nextState : Object.assign({}, state, nextState); listeners.forEach(function (listener) { return listener(state, _previousState); }); } }; var getState = function getState() { return state; }; var subscribe = function subscribe(listener) { listeners.add(listener); return function () { return listeners.delete(listener); }; }; var destroy = function destroy() { return listeners.clear(); }; var api = { setState: setState, getState: getState, subscribe: subscribe, destroy: destroy }; state = createState(setState, getState, api); return api; }; var createStore = function createStore(createState) { return createState ? createStoreImpl(createState) : createStoreImpl; }; exports["default"] = createStore; Object.defineProperty(exports, '__esModule', { value: true }); }));