Viewing File: /home/ubuntu/route-and-root-frontend-base/node_modules/zustand/vanilla.js

'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

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 != null ? replace : typeof nextState !== 'object') ? 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;
Back to Directory File Manager