mirror of
https://github.com/LukeHagar/better-auth.git
synced 2025-12-09 20:27:44 +00:00
chore: update dependencies and lock file
This commit is contained in:
@@ -101,7 +101,7 @@
|
|||||||
"dotenv-cli": "^7.4.4",
|
"dotenv-cli": "^7.4.4",
|
||||||
"eslint-config-next": "15.0.0-canary.149",
|
"eslint-config-next": "15.0.0-canary.149",
|
||||||
"postcss": "^8.4.49",
|
"postcss": "^8.4.49",
|
||||||
"tailwindcss": "^3.4.16",
|
"tailwindcss": "3.4.16",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.2"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
|||||||
@@ -608,7 +608,7 @@
|
|||||||
"oauth2-mock-server": "^7.2.0",
|
"oauth2-mock-server": "^7.2.0",
|
||||||
"pg": "^8.13.1",
|
"pg": "^8.13.1",
|
||||||
"prisma": "^5.22.0",
|
"prisma": "^5.22.0",
|
||||||
"react": "^18.3.1",
|
"react": "^19.0.0",
|
||||||
"react-native": "~0.74.6",
|
"react-native": "~0.74.6",
|
||||||
"solid-js": "^1.9.3",
|
"solid-js": "^1.9.3",
|
||||||
"tarn": "^3.0.2",
|
"tarn": "^3.0.2",
|
||||||
@@ -628,7 +628,7 @@
|
|||||||
"better-call": "catalog:",
|
"better-call": "catalog:",
|
||||||
"defu": "^6.1.4",
|
"defu": "^6.1.4",
|
||||||
"jose": "^5.9.6",
|
"jose": "^5.9.6",
|
||||||
"kysely": "^0.27.4",
|
"kysely": "^0.27.6",
|
||||||
"nanostores": "^0.11.3",
|
"nanostores": "^0.11.3",
|
||||||
"valibot": "1.0.0-beta.15",
|
"valibot": "1.0.0-beta.15",
|
||||||
"zod": "^3.24.1"
|
"zod": "^3.24.1"
|
||||||
|
|||||||
@@ -7,11 +7,6 @@ type StoreKeys<T> = T extends { setKey: (k: infer K, v: any) => unknown }
|
|||||||
? K
|
? K
|
||||||
: never;
|
: never;
|
||||||
|
|
||||||
let emit = (snapshotRef: any, onChange: any) => (value: any) => {
|
|
||||||
snapshotRef.current = value;
|
|
||||||
onChange();
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface UseStoreOptions<SomeStore> {
|
export interface UseStoreOptions<SomeStore> {
|
||||||
/**
|
/**
|
||||||
* @default
|
* @default
|
||||||
@@ -27,21 +22,52 @@ export interface UseStoreOptions<SomeStore> {
|
|||||||
keys?: StoreKeys<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>(
|
export function useStore<SomeStore extends Store>(
|
||||||
store: SomeStore,
|
store: SomeStore,
|
||||||
{ keys, deps = [store, keys] }: UseStoreOptions<SomeStore> = {},
|
options: UseStoreOptions<SomeStore> = {},
|
||||||
): StoreValue<SomeStore> {
|
): StoreValue<SomeStore> {
|
||||||
let snapshotRef = useRef<StoreValue<SomeStore>>(store.get());
|
let snapshotRef = useRef<StoreValue<SomeStore>>(store.get());
|
||||||
snapshotRef.current = store.get();
|
|
||||||
|
|
||||||
let subscribe = useCallback(
|
const { keys, deps = [store, keys] } = options;
|
||||||
(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;
|
|
||||||
|
|
||||||
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