MCPcopy Create free account
hub / github.com/OpenPipe/OpenPipe / createSelectors

Function createSelectors

app/src/state/createSelectors.ts:17–35  ·  view source on GitHub ↗
(_store: S)

Source from the content-addressed store, hash-verified

15/* eslint-disable */
16
17export const createSelectors = <S extends UseBoundStore<StoreApi<object>>>(_store: S) => {
18 const store = _store as WithSelectors<typeof _store>;
19 store.use = {};
20 for (const k of Object.keys(store.getState())) {
21 // @ts-expect-error black magic
22 const stateValue = store.getState()[k];
23 if (typeof stateValue === "object" && stateValue !== null) {
24 (store.use as any)[k] = {};
25 for (const nestedK of Object.keys(stateValue)) {
26 // @ts-expect-error black magic
27 (store.use as any)[k][nestedK] = () => store((s) => s[k][nestedK as keyof (typeof s)[k]]);
28 }
29 } else {
30 (store.use as any)[k] = () => store((s) => s[k as keyof typeof s]);
31 }
32 }
33
34 return store;
35};

Callers 1

store.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected