import { FTypes } from '../../types' type CachedQuery = { raw: FTypes.Query converted: FTypes.Query } const queryCache: { [K in string]?: CachedQuery[] } = {} export const findCachedQuery = ( collectionName: string, rawQuery: FTypes.Query, ) => { const queries = queryCache[collectionName] return queries?.find((q) => q.raw.isEqual(rawQuery as any))?.converted } export const addQueryCache = ( collectionName: string, rawQuery: FTypes.Query, convertedQuery: FTypes.Query, ) => { const queries = queryCache[collectionName] const newQueries: CachedQuery[] = [ ...(queries ?? []), { raw: rawQuery, converted: convertedQuery }, ] queryCache[collectionName] = newQueries }