@ttt-productions/query-core 0.3.8 → 0.3.10
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/dist/firestore/index.d.ts +1 -0
- package/dist/firestore/index.d.ts.map +1 -1
- package/dist/firestore/index.js +1 -0
- package/dist/firestore/index.js.map +1 -1
- package/dist/firestore/useBatchFirestoreDocs.d.ts +79 -0
- package/dist/firestore/useBatchFirestoreDocs.d.ts.map +1 -0
- package/dist/firestore/useBatchFirestoreDocs.js +118 -0
- package/dist/firestore/useBatchFirestoreDocs.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,4 +8,5 @@ export { useFirestoreInfinite, flattenInfiniteData, getInfiniteDataCount } from
|
|
|
8
8
|
export { useFirestorePaginated } from './use-firestore-paginated';
|
|
9
9
|
export type { UseFirestorePaginatedResult } from './use-firestore-paginated';
|
|
10
10
|
export { useFirestoreSet, useFirestoreUpdate, useFirestoreDelete, useFirestoreBatch, } from './use-firestore-mutations';
|
|
11
|
+
export { useBatchFirestoreDocs, type BatchFirestoreDocsOptions, type BatchFirestoreDocsResult, } from './useBatchFirestoreDocs';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGxD,YAAY,EACV,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGxD,YAAY,EACV,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC"}
|
package/dist/firestore/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export { useFirestoreInfinite, flattenInfiniteData, getInfiniteDataCount } from
|
|
|
8
8
|
export { useFirestorePaginated } from './use-firestore-paginated';
|
|
9
9
|
// Mutation Hooks
|
|
10
10
|
export { useFirestoreSet, useFirestoreUpdate, useFirestoreDelete, useFirestoreBatch, } from './use-firestore-mutations';
|
|
11
|
+
export { useBatchFirestoreDocs, } from './useBatchFirestoreDocs';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiB9D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiB9D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,qBAAqB,GAGtB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type Firestore } from 'firebase/firestore';
|
|
2
|
+
export type BatchFirestoreDocsOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Firestore instance to use for queries
|
|
5
|
+
*/
|
|
6
|
+
db: Firestore;
|
|
7
|
+
/**
|
|
8
|
+
* Full collection path (e.g., 'publicUsers', 'projects/public')
|
|
9
|
+
*/
|
|
10
|
+
collectionPath: string;
|
|
11
|
+
/**
|
|
12
|
+
* Array of document IDs to fetch
|
|
13
|
+
*/
|
|
14
|
+
ids: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Query key prefix for individual document cache entries
|
|
17
|
+
* Each document will be cached as [queryKeyPrefix, docId]
|
|
18
|
+
* @example 'publicUser' -> ['publicUser', 'user123']
|
|
19
|
+
*/
|
|
20
|
+
queryKeyPrefix: string;
|
|
21
|
+
/**
|
|
22
|
+
* Time in milliseconds to consider data fresh (default: 30 minutes)
|
|
23
|
+
*/
|
|
24
|
+
staleTime?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Time in milliseconds to keep unused data in cache (default: 1 hour)
|
|
27
|
+
*/
|
|
28
|
+
gcTime?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Whether queries should be enabled (default: true)
|
|
31
|
+
*/
|
|
32
|
+
enabled?: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type BatchFirestoreDocsResult<T> = {
|
|
35
|
+
/**
|
|
36
|
+
* Map of docId -> document data
|
|
37
|
+
* Only includes documents that exist in Firestore
|
|
38
|
+
*/
|
|
39
|
+
data: Record<string, T>;
|
|
40
|
+
/**
|
|
41
|
+
* True if any batch queries are still loading
|
|
42
|
+
*/
|
|
43
|
+
isLoading: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* True if any batch queries have errored
|
|
46
|
+
*/
|
|
47
|
+
isError: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* First error from batch queries, if any
|
|
50
|
+
*/
|
|
51
|
+
error: Error | null;
|
|
52
|
+
/**
|
|
53
|
+
* Refetch all documents (even cached ones)
|
|
54
|
+
*/
|
|
55
|
+
refetch: () => Promise<void>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Efficiently batch fetch Firestore documents with individual caching
|
|
59
|
+
*
|
|
60
|
+
* Features:
|
|
61
|
+
* - Each document is cached individually for maximum reuse
|
|
62
|
+
* - Only fetches documents that are missing or stale
|
|
63
|
+
* - Respects Firestore's 30-item limit for 'in' queries
|
|
64
|
+
* - Returns combined result as Record<docId, data>
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const { data: users, isLoading } = useBatchFirestoreDocs<PublicUser>({
|
|
69
|
+
* db,
|
|
70
|
+
* collectionPath: 'publicUsers',
|
|
71
|
+
* ids: ['user1', 'user2', 'user3'],
|
|
72
|
+
* queryKeyPrefix: 'publicUser',
|
|
73
|
+
* staleTime: 30 * 60 * 1000, // 30 minutes
|
|
74
|
+
* });
|
|
75
|
+
* // users = { user1: {...}, user2: {...}, user3: {...} }
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function useBatchFirestoreDocs<T extends Record<string, any>>({ db, collectionPath, ids, queryKeyPrefix, staleTime, gcTime, enabled, }: BatchFirestoreDocsOptions): BatchFirestoreDocsResult<T>;
|
|
79
|
+
//# sourceMappingURL=useBatchFirestoreDocs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBatchFirestoreDocs.d.ts","sourceRoot":"","sources":["../../src/firestore/useBatchFirestoreDocs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiD,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAInG,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,EAAE,EAAE,SAAS,CAAC;IAEd;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,GAAG,EAAE,MAAM,EAAE,CAAC;IAEd;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EACnE,EAAE,EACF,cAAc,EACd,GAAG,EACH,cAAc,EACd,SAA0B,EAC1B,MAAuB,EACvB,OAAc,GACf,EAAE,yBAAyB,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAoHzD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { useQueries, useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
import { collection, getDocs, query, where, documentId } from 'firebase/firestore';
|
|
4
|
+
const FIRESTORE_IN_LIMIT = 30;
|
|
5
|
+
/**
|
|
6
|
+
* Efficiently batch fetch Firestore documents with individual caching
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Each document is cached individually for maximum reuse
|
|
10
|
+
* - Only fetches documents that are missing or stale
|
|
11
|
+
* - Respects Firestore's 30-item limit for 'in' queries
|
|
12
|
+
* - Returns combined result as Record<docId, data>
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const { data: users, isLoading } = useBatchFirestoreDocs<PublicUser>({
|
|
17
|
+
* db,
|
|
18
|
+
* collectionPath: 'publicUsers',
|
|
19
|
+
* ids: ['user1', 'user2', 'user3'],
|
|
20
|
+
* queryKeyPrefix: 'publicUser',
|
|
21
|
+
* staleTime: 30 * 60 * 1000, // 30 minutes
|
|
22
|
+
* });
|
|
23
|
+
* // users = { user1: {...}, user2: {...}, user3: {...} }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function useBatchFirestoreDocs({ db, collectionPath, ids, queryKeyPrefix, staleTime = 30 * 60 * 1000, gcTime = 60 * 60 * 1000, enabled = true, }) {
|
|
27
|
+
const queryClient = useQueryClient();
|
|
28
|
+
// Deduplicate and filter out empty IDs
|
|
29
|
+
const uniqueIds = useMemo(() => {
|
|
30
|
+
return Array.from(new Set(ids.filter(Boolean)));
|
|
31
|
+
}, [ids]);
|
|
32
|
+
// Separate IDs into cached/fresh vs needs-fetch
|
|
33
|
+
const { cachedIds, fetchIds } = useMemo(() => {
|
|
34
|
+
if (!enabled) {
|
|
35
|
+
return { cachedIds: [], fetchIds: [] };
|
|
36
|
+
}
|
|
37
|
+
const cached = [];
|
|
38
|
+
const needsFetch = [];
|
|
39
|
+
for (const id of uniqueIds) {
|
|
40
|
+
const queryKey = [queryKeyPrefix, id];
|
|
41
|
+
const state = queryClient.getQueryState(queryKey);
|
|
42
|
+
// Check if data exists and is still fresh
|
|
43
|
+
if (state?.data && state.dataUpdatedAt && Date.now() - state.dataUpdatedAt < staleTime) {
|
|
44
|
+
cached.push(id);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
needsFetch.push(id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return { cachedIds: cached, fetchIds: needsFetch };
|
|
51
|
+
}, [uniqueIds, queryKeyPrefix, queryClient, staleTime, enabled]);
|
|
52
|
+
// Batch the fetchIds into groups of 30
|
|
53
|
+
const batches = useMemo(() => {
|
|
54
|
+
const result = [];
|
|
55
|
+
for (let i = 0; i < fetchIds.length; i += FIRESTORE_IN_LIMIT) {
|
|
56
|
+
result.push(fetchIds.slice(i, i + FIRESTORE_IN_LIMIT));
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}, [fetchIds]);
|
|
60
|
+
// Fetch each batch and populate individual cache entries
|
|
61
|
+
const batchQueries = useQueries({
|
|
62
|
+
queries: batches.map((batch, batchIndex) => ({
|
|
63
|
+
queryKey: [queryKeyPrefix, 'batch', batchIndex, ...batch.sort()],
|
|
64
|
+
queryFn: async () => {
|
|
65
|
+
if (batch.length === 0)
|
|
66
|
+
return [];
|
|
67
|
+
const q = query(collection(db, collectionPath), where(documentId(), 'in', batch));
|
|
68
|
+
const snapshot = await getDocs(q);
|
|
69
|
+
const docs = [];
|
|
70
|
+
// Process each document and update individual cache entries
|
|
71
|
+
snapshot.forEach((doc) => {
|
|
72
|
+
const data = { id: doc.id, ...doc.data() };
|
|
73
|
+
docs.push(data);
|
|
74
|
+
// Populate individual cache entry
|
|
75
|
+
queryClient.setQueryData([queryKeyPrefix, doc.id], data, { updatedAt: Date.now() });
|
|
76
|
+
});
|
|
77
|
+
return docs;
|
|
78
|
+
},
|
|
79
|
+
staleTime,
|
|
80
|
+
gcTime,
|
|
81
|
+
enabled: enabled && batch.length > 0,
|
|
82
|
+
})),
|
|
83
|
+
});
|
|
84
|
+
// Combine results
|
|
85
|
+
const isLoading = batchQueries.some(q => q.isLoading);
|
|
86
|
+
const isError = batchQueries.some(q => q.isError);
|
|
87
|
+
const error = batchQueries.find(q => q.error)?.error || null;
|
|
88
|
+
const data = useMemo(() => {
|
|
89
|
+
const combined = {};
|
|
90
|
+
// Add cached data
|
|
91
|
+
for (const id of cachedIds) {
|
|
92
|
+
const cached = queryClient.getQueryData([queryKeyPrefix, id]);
|
|
93
|
+
if (cached) {
|
|
94
|
+
combined[id] = cached;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Add freshly fetched data
|
|
98
|
+
for (const batchQuery of batchQueries) {
|
|
99
|
+
if (batchQuery.data) {
|
|
100
|
+
for (const doc of batchQuery.data) {
|
|
101
|
+
combined[doc.id] = doc;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return combined;
|
|
106
|
+
}, [cachedIds, batchQueries, queryClient, queryKeyPrefix]);
|
|
107
|
+
const refetch = async () => {
|
|
108
|
+
await Promise.all(batchQueries.map(q => q.refetch()));
|
|
109
|
+
};
|
|
110
|
+
return {
|
|
111
|
+
data,
|
|
112
|
+
isLoading,
|
|
113
|
+
isError,
|
|
114
|
+
error: error,
|
|
115
|
+
refetch,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=useBatchFirestoreDocs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBatchFirestoreDocs.js","sourceRoot":"","sources":["../../src/firestore/useBatchFirestoreDocs.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ export type { QueryKey } from './keys';
|
|
|
5
5
|
export { invalidateByPrefix, removeByPrefix, updateQueryData } from './cache-helpers';
|
|
6
6
|
export { TTTQueryProvider } from './provider';
|
|
7
7
|
export type { TTTQueryProviderProps } from './provider';
|
|
8
|
-
export { FirestoreProvider, useFirestoreDb, useFirestoreDoc, useFirestoreCollection, useFirestoreInfinite, useFirestorePaginated, useFirestoreSet, useFirestoreUpdate, useFirestoreDelete, useFirestoreBatch, flattenInfiniteData, getInfiniteDataCount, docWithId, } from './firestore';
|
|
9
|
-
export type { FirestoreProviderProps, WithId, FirestoreBaseOptions, FirestoreDocOptions, FirestoreCollectionOptions, FirestoreInfiniteOptions, FirestorePaginatedOptions, InfinitePage, PaginatedResult, MutationOperation, FirestoreMutationOptions, FirestoreBatchOptions, } from './firestore';
|
|
8
|
+
export { FirestoreProvider, useFirestoreDb, useFirestoreDoc, useFirestoreCollection, useFirestoreInfinite, useFirestorePaginated, useFirestoreSet, useFirestoreUpdate, useFirestoreDelete, useFirestoreBatch, flattenInfiniteData, getInfiniteDataCount, docWithId, useBatchFirestoreDocs, } from './firestore';
|
|
9
|
+
export type { FirestoreProviderProps, WithId, FirestoreBaseOptions, FirestoreDocOptions, FirestoreCollectionOptions, FirestoreInfiniteOptions, FirestorePaginatedOptions, InfinitePage, PaginatedResult, MutationOperation, FirestoreMutationOptions, FirestoreBatchOptions, BatchFirestoreDocsOptions, BatchFirestoreDocsResult, } from './firestore';
|
|
10
10
|
export { useFirestoreSearch, SEARCH_CONFIGS, } from './search';
|
|
11
11
|
export type { FirestoreSearchConfig, FirestoreSearchOptions, } from './search';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAEL,iBAAiB,EACjB,cAAc,EAEd,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EAErB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAEjB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAEL,iBAAiB,EACjB,cAAc,EAEd,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EAErB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAEjB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EAET,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,YAAY,EAEV,sBAAsB,EAEtB,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,9 @@ useFirestoreDoc, useFirestoreCollection, useFirestoreInfinite, useFirestorePagin
|
|
|
15
15
|
// Mutation Hooks
|
|
16
16
|
useFirestoreSet, useFirestoreUpdate, useFirestoreDelete, useFirestoreBatch,
|
|
17
17
|
// Helpers
|
|
18
|
-
flattenInfiniteData, getInfiniteDataCount, docWithId,
|
|
18
|
+
flattenInfiniteData, getInfiniteDataCount, docWithId,
|
|
19
|
+
//Batch query cache
|
|
20
|
+
useBatchFirestoreDocs, } from './firestore';
|
|
19
21
|
// Search Integration
|
|
20
22
|
export { useFirestoreSearch, SEARCH_CONFIGS, } from './search';
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG9C,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtF,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAwB;AACxB,OAAO;AACL,WAAW;AACX,iBAAiB,EACjB,cAAc;AACd,cAAc;AACd,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB;AACrB,iBAAiB;AACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB;AACjB,UAAU;AACV,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG9C,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtF,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAwB;AACxB,OAAO;AACL,WAAW;AACX,iBAAiB,EACjB,cAAc;AACd,cAAc;AACd,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB;AACrB,iBAAiB;AACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB;AACjB,UAAU;AACV,mBAAmB,EACnB,oBAAoB,EACpB,SAAS;AACT,mBAAmB;AACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAqBrB,qBAAqB;AACrB,OAAO,EACL,kBAAkB,EAClB,cAAc,GACf,MAAM,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttt-productions/query-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.10",
|
|
4
4
|
"description": "Shared TanStack Query (React Query) client defaults, query key helpers, and Firestore integration hooks for TTT Productions apps",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|