INNER CODE UNIT · TypeScript
topLevelKeys
margelo/react-native-runtimes · packages/state/src/index.ts:357
function topLevelKeys<TState>(state: TState): SharedStoreSubtreeKey<TState>[] {
if (typeof state !== 'object' || state === null || Array.isArray(state)) {
return [];
}
return Object.keys(state) as SharedStoreSubtreeKey<TState>[];
}
function uniqueSubtrees<TState, TAction>(
initialState: TState,
slices?: SharedStoreSliceReducers<TState, TAction>,
subtrees?: readonly SharedStoreSubtreeKey<TState>[],
): SharedStoreSubtreeKey<TState>[] {
const keys = subtrees?.length
? subtrees
: slices
? (Object.keys(slices) as SharedStoreSubtreeKey<TState>[])
: topLevelKeys(initialState);
return Array.from(new Set(keys));