INNER CODE UNIT · TypeScript
createSharedStore
margelo/react-native-runtimes · packages/state/src/index.ts:402
export function createSharedStore<TState, TAction = unknown>({
name,
initialState,
reducer,
slices,
subtrees,
persist,
sourceId = runtimeSourceId,
}: SharedStoreOptions<TState, TAction>): SharedStoreApi<TState, TAction> {
const sliceKeys = uniqueSubtrees(initialState, slices, subtrees);
const usesSubtrees = sliceKeys.length > 0 && !reducer;
const nativeSubtreeKeys = usesSubtrees ? sliceKeys : [ROOT_SUBTREE_KEY];
const persistedSubtrees = resolvePersistedSubtrees(
persist,
name,
nativeSubtreeKeys,
);
const listeners = new Set<ListenerEntry<TState>>();