@restate/core
Version:
_Restate_ is a predictable, easy to use, easy to integrate, typesafe state container for [React](https://reactjs.org/).
38 lines (37 loc) • 1.13 kB
JavaScript
import React from "react";
import { createAppStateHook } from "./create-app-state-hook";
import { createNextHook } from "./create-next-hook";
import { createProvider } from "./create-provider";
import { createSelectorHook } from "./create-selector-hook";
import {
createStore,
RESTATE_STORE_DEFAULT_OPTIONS
} from "./create-store";
import { createStoreHook } from "./create-store-hook";
function create({
state,
middleware = [],
options = RESTATE_STORE_DEFAULT_OPTIONS
}) {
const store = createStore({ state, middleware, options, trace: "INIT" });
const AppStateContext = createProvider(store);
const useSelector = createSelectorHook(AppStateContext);
const useNext = createNextHook(AppStateContext);
const useStore = createStoreHook(AppStateContext);
const useAppState = createAppStateHook(AppStateContext, (s) => s);
const StateProvider = (props) => /* @__PURE__ */ React.createElement(AppStateContext.Provider, {
value: store
}, props.children);
return {
AppStateContext,
StateProvider,
useAppState,
useSelector,
useNext,
store,
useStore
};
}
export {
create
};