react-query-firebase 2.1.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/react-native/auth/index.d.ts +1 -0
- package/react-native/auth/index.js +1 -0
- package/react-native/auth/index.ts +1 -0
- package/react-native/auth/useAuthStateReady.d.ts +17 -0
- package/react-native/auth/useAuthStateReady.js +33 -0
- package/react-native/auth/useAuthStateReady.ts +38 -0
- package/react-native/firestore/useCompositeFilter.d.ts +62 -20
- package/react-native/firestore/useCompositeFilter.js +51 -11
- package/react-native/firestore/useCompositeFilter.ts +70 -25
- package/react-native/firestore/useCountQuery.d.ts +35 -9
- package/react-native/firestore/useCountQuery.js +15 -6
- package/react-native/firestore/useCountQuery.ts +38 -14
- package/react-native/firestore/useInfiniteQuery.d.ts +39 -7
- package/react-native/firestore/useInfiniteQuery.js +19 -4
- package/react-native/firestore/useInfiniteQuery.ts +47 -8
- package/react-native/firestore/useQuery.d.ts +37 -12
- package/react-native/firestore/useQuery.js +17 -9
- package/react-native/firestore/useQuery.ts +40 -14
- package/types/index.d.ts +2 -0
- package/types/index.js +2 -0
- package/web/auth/useAuthStateReady.d.ts +12 -1
- package/web/auth/useAuthStateReady.js +12 -1
- package/web/auth/useAuthStateReady.ts +12 -1
- package/web/firestore/useCompositeFilter.d.ts +63 -21
- package/web/firestore/useCompositeFilter.js +48 -9
- package/web/firestore/useCompositeFilter.ts +73 -23
- package/web/firestore/useCountQuery.d.ts +37 -11
- package/web/firestore/useCountQuery.js +16 -7
- package/web/firestore/useCountQuery.ts +44 -19
- package/web/firestore/useInfiniteQuery.d.ts +41 -10
- package/web/firestore/useInfiniteQuery.js +21 -6
- package/web/firestore/useInfiniteQuery.ts +51 -23
- package/web/firestore/useQuery.d.ts +39 -15
- package/web/firestore/useQuery.js +19 -11
- package/web/firestore/useQuery.ts +49 -27
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
DocumentData,
|
|
3
|
-
FirestoreDataConverter,
|
|
4
2
|
getDocs,
|
|
5
3
|
CollectionReference,
|
|
6
4
|
query,
|
|
@@ -14,51 +12,75 @@ import {
|
|
|
14
12
|
useQuery as useReactQuery,
|
|
15
13
|
UseQueryOptions as UseReactQueryOptions
|
|
16
14
|
} from "@tanstack/react-query";
|
|
15
|
+
import { QueryFilterConstraint } from "./useCompositeFilter";
|
|
16
|
+
import { AppModel } from "../../types";
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
> = {
|
|
18
|
+
/**
|
|
19
|
+
* @inline
|
|
20
|
+
*/
|
|
21
|
+
type UseQueryOptions<AppModelType extends AppModel = AppModel> = {
|
|
22
|
+
/**
|
|
23
|
+
* Reqct-query options that must include queryKey and shall not define queryFn
|
|
24
|
+
*/
|
|
22
25
|
options: Omit<UseReactQueryOptions<AppModelType[], Error, AppModelType[]>, "queryFn"> &
|
|
23
26
|
Required<Pick<UseReactQueryOptions<AppModelType[], Error, AppModelType[]>, "queryKey">>;
|
|
24
|
-
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Reference to a Firestore collection
|
|
30
|
+
*/
|
|
31
|
+
collectionReference: CollectionReference<AppModelType, AppModelType>;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Non composite filter constraints such as limit, order, where
|
|
35
|
+
*/
|
|
25
36
|
queryConstraints?: QueryConstraint[] | QueryNonFilterConstraint[];
|
|
26
|
-
|
|
27
|
-
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Composite filter
|
|
40
|
+
*/
|
|
41
|
+
compositeFilter?: QueryFilterConstraint;
|
|
28
42
|
};
|
|
29
43
|
|
|
30
44
|
/**
|
|
31
|
-
* Executes a query on a Firestore
|
|
45
|
+
* Executes a query on a Firestore data source and returns the resulting documents as an array.
|
|
46
|
+
*
|
|
47
|
+
* @group Hook
|
|
32
48
|
*
|
|
33
|
-
*
|
|
34
|
-
* reference and constraints. It supports optional filtering, conversion, and additional query constraints.
|
|
49
|
+
* @param {UseQueryOptions<AppModelType>} options - Configuration options for the query.
|
|
35
50
|
*
|
|
36
|
-
* @
|
|
37
|
-
* @param {DocumentReference<AppModelType>} queryReference - The reference to the query to be executed.
|
|
38
|
-
* @param {QueryConstraint[]} queryConstraints - Additional constraints to fine-tune the query.
|
|
39
|
-
* @param {QueryConstraint} compositeFilter - Optional composite filter to apply to the query.
|
|
40
|
-
* @param {FirestoreDataConverter<AppModelType>} converter - Optional data converter for transforming snapshots.
|
|
51
|
+
* @returns {UseQueryResult<AppModelType[]>} An object containing documents that match the query.
|
|
41
52
|
*
|
|
42
|
-
* @
|
|
53
|
+
* @example
|
|
54
|
+
* ```jsx
|
|
55
|
+
* export const MyComponent = () => {
|
|
56
|
+
* const docs = useQuery({
|
|
57
|
+
* options: {
|
|
58
|
+
* queryKey: ['key']
|
|
59
|
+
* },
|
|
60
|
+
* collectionReference: collection(),
|
|
61
|
+
* });
|
|
62
|
+
* console.log(docs);
|
|
63
|
+
* };
|
|
64
|
+
* ```
|
|
43
65
|
*/
|
|
44
|
-
export const useQuery = <
|
|
45
|
-
AppModelType extends DocumentData = DocumentData,
|
|
46
|
-
DbModelType extends DocumentData = DocumentData
|
|
47
|
-
>({
|
|
66
|
+
export const useQuery = <AppModelType extends AppModel = AppModel>({
|
|
48
67
|
options,
|
|
49
68
|
collectionReference,
|
|
50
69
|
queryConstraints = [],
|
|
51
|
-
compositeFilter
|
|
52
|
-
|
|
53
|
-
}: UseQueryOptions<AppModelType, DbModelType>): UseQueryResult<AppModelType[]> => {
|
|
70
|
+
compositeFilter
|
|
71
|
+
}: UseQueryOptions<AppModelType>): UseQueryResult<AppModelType[]> => {
|
|
54
72
|
return useReactQuery({
|
|
55
73
|
...options,
|
|
56
74
|
queryFn: async () => {
|
|
57
75
|
const queryToExecute = compositeFilter
|
|
58
|
-
? query(
|
|
76
|
+
? query(
|
|
77
|
+
collectionReference,
|
|
78
|
+
compositeFilter as QueryCompositeFilterConstraint,
|
|
79
|
+
...(queryConstraints as QueryNonFilterConstraint[])
|
|
80
|
+
)
|
|
59
81
|
: query(collectionReference, ...queryConstraints);
|
|
60
82
|
|
|
61
|
-
const querySnapshot = await getDocs(
|
|
83
|
+
const querySnapshot = await getDocs(queryToExecute);
|
|
62
84
|
const docs: AppModelType[] = [];
|
|
63
85
|
|
|
64
86
|
if (querySnapshot) {
|