UNPKG

@shined/reactive

Version:

⚛️ Proxy-driven state library for JavaScript application, Intuitive, Flexible and Written in TypeScript.

92 lines 3.6 kB
function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } import { createWithHooks, useSnapshot, useSubscribe, withUseSnapshot, withUseSubscribe } from "./chunk-SADGDJAJ.js"; import { createVanilla, deepEqual, devtools, getSnapshot, produce, ref, setGlobalNotifyInSync, snapshot, subscribe, withDerived, withSnapshot, withSubscribe } from "./chunk-W2YTH3FF.js"; // src/enhancers/react/with-use-derived.ts function withUseDerived(store) { var mapFn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : function(s) { return s; }; var storeWithDerived = withDerived(store, mapFn); return _object_spread_props(_object_spread({}, storeWithDerived), { useDerived: function() { var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; return useSnapshot(store.mutate, mapFn, options); } }); } // src/react/use-reactive.ts import { useRef } from "react"; function useReactive(initialState) { var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; var store = useCreation(function() { return createWithHooks(initialState); }, [ initialState ]); return [ store.useSnapshot(_object_spread({}, options)), store.mutate ]; } function useCreation(create, currDeps) { var _useRef = useRef({}), creation = _useRef.current; if (!creation.created || !deepEqual(creation.preDeps, currDeps)) { creation.value = create(); creation.created = true; creation.preDeps = currDeps; } return creation.value; } export { createWithHooks as create, createVanilla, devtools, getSnapshot, produce, ref, setGlobalNotifyInSync, snapshot, subscribe, useReactive, useSnapshot, useSubscribe, withDerived, withSnapshot, withSubscribe, withUseDerived, withUseSnapshot, withUseSubscribe }; //# sourceMappingURL=index.js.map