advanced-js-kit
Version:
Modern TypeScript utility library with tree-shaking support - Array, String, Number, Network, Sleep, and JWT utilities for JavaScript and TypeScript projects
1 lines • 990 B
Source Map (JSON)
{"version":3,"sources":["../../../src/react/zustand/index.ts"],"names":[],"mappings":";;;AAMO,IAAM,sBAAA,GAAyB,CAGpC,MAAA,KACG;AACH,EAAA,MAAM,KAAA,GAAQ,MAAA;AACd,EAAA,KAAA,CAAM,MAAM,EAAC;AACb,EAAA,KAAA,MAAW,KAAK,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAA,EAAG;AAC7C,IAAC,KAAA,CAAM,IAAY,CAAC,CAAA,GAAI,MAAM,KAAA,CAAM,CAAA,CAAA,KAAK,CAAA,CAAE,CAAmB,CAAC,CAAA;AAAA;AAGjE,EAAA,OAAO,KAAA;AACT","file":"index.cjs","sourcesContent":["import { StoreApi, UseBoundStore } from 'zustand';\r\n\r\ntype WithSelectors<S> = S extends { getState: () => infer T }\r\n ? S & { use: { [K in keyof T]: () => T[K] } }\r\n : never;\r\n\r\nexport const createZustandSelectors = <\r\n S extends UseBoundStore<StoreApi<object>>,\r\n>(\r\n _store: S,\r\n) => {\r\n const store = _store as WithSelectors<typeof _store>;\r\n store.use = {};\r\n for (const k of Object.keys(store.getState())) {\r\n (store.use as any)[k] = () => store(s => s[k as keyof typeof s]);\r\n }\r\n\r\n return store;\r\n};\r\n"]}