mirror of
https://github.com/LukeHagar/better-auth.git
synced 2025-12-10 04:19:32 +00:00
chore: update dependencies and lock file
This commit is contained in:
@@ -101,7 +101,7 @@
|
||||
"dotenv-cli": "^7.4.4",
|
||||
"eslint-config-next": "15.0.0-canary.149",
|
||||
"postcss": "^8.4.49",
|
||||
"tailwindcss": "^3.4.16",
|
||||
"tailwindcss": "3.4.16",
|
||||
"typescript": "^5.7.2"
|
||||
},
|
||||
"overrides": {
|
||||
|
||||
@@ -608,7 +608,7 @@
|
||||
"oauth2-mock-server": "^7.2.0",
|
||||
"pg": "^8.13.1",
|
||||
"prisma": "^5.22.0",
|
||||
"react": "^18.3.1",
|
||||
"react": "^19.0.0",
|
||||
"react-native": "~0.74.6",
|
||||
"solid-js": "^1.9.3",
|
||||
"tarn": "^3.0.2",
|
||||
@@ -628,7 +628,7 @@
|
||||
"better-call": "catalog:",
|
||||
"defu": "^6.1.4",
|
||||
"jose": "^5.9.6",
|
||||
"kysely": "^0.27.4",
|
||||
"kysely": "^0.27.6",
|
||||
"nanostores": "^0.11.3",
|
||||
"valibot": "1.0.0-beta.15",
|
||||
"zod": "^3.24.1"
|
||||
|
||||
@@ -7,11 +7,6 @@ type StoreKeys<T> = T extends { setKey: (k: infer K, v: any) => unknown }
|
||||
? K
|
||||
: never;
|
||||
|
||||
let emit = (snapshotRef: any, onChange: any) => (value: any) => {
|
||||
snapshotRef.current = value;
|
||||
onChange();
|
||||
};
|
||||
|
||||
export interface UseStoreOptions<SomeStore> {
|
||||
/**
|
||||
* @default
|
||||
@@ -27,21 +22,52 @@ export interface UseStoreOptions<SomeStore> {
|
||||
keys?: StoreKeys<SomeStore>[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Subscribe to store changes and get store's value.
|
||||
*
|
||||
* Can be user with store builder too.
|
||||
*
|
||||
* ```js
|
||||
* import { useStore } from 'nanostores/react'
|
||||
*
|
||||
* import { router } from '../store/router'
|
||||
*
|
||||
* export const Layout = () => {
|
||||
* let page = useStore(router)
|
||||
* if (page.route === 'home') {
|
||||
* return <HomePage />
|
||||
* } else {
|
||||
* return <Error404 />
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @param store Store instance.
|
||||
* @returns Store value.
|
||||
*/
|
||||
export function useStore<SomeStore extends Store>(
|
||||
store: SomeStore,
|
||||
{ keys, deps = [store, keys] }: UseStoreOptions<SomeStore> = {},
|
||||
options: UseStoreOptions<SomeStore> = {},
|
||||
): StoreValue<SomeStore> {
|
||||
let snapshotRef = useRef<StoreValue<SomeStore>>(store.get());
|
||||
snapshotRef.current = store.get();
|
||||
|
||||
let subscribe = useCallback(
|
||||
(onChange: any) =>
|
||||
(keys?.length || 0) > 0
|
||||
? listenKeys(store as any, keys as any, emit(snapshotRef, onChange))
|
||||
: store.listen(emit(snapshotRef, onChange)),
|
||||
deps,
|
||||
);
|
||||
let get = () => snapshotRef.current;
|
||||
const { keys, deps = [store, keys] } = options;
|
||||
|
||||
return useSyncExternalStore(subscribe, get, get) as StoreValue<SomeStore>;
|
||||
let subscribe = useCallback((onChange: () => void) => {
|
||||
const emitChange = (value: StoreValue<SomeStore>) => {
|
||||
if (snapshotRef.current === value) return;
|
||||
snapshotRef.current = value;
|
||||
onChange();
|
||||
};
|
||||
|
||||
emitChange(store.value);
|
||||
if (keys?.length) {
|
||||
return listenKeys(store as any, keys, emitChange);
|
||||
}
|
||||
return store.listen(emitChange);
|
||||
}, deps);
|
||||
|
||||
let get = () => snapshotRef.current as StoreValue<SomeStore>;
|
||||
|
||||
return useSyncExternalStore(subscribe, get, get);
|
||||
}
|
||||
|
||||
9683
pnpm-lock.yaml
generated
9683
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user