| 201 | options?: MaybeRefDeep<InvalidateOptions>, |
| 202 | ): Promise<void> |
| 203 | invalidateQueries<TTaggedQueryKey extends QueryKey = QueryKey>( |
| 204 | filters: |
| 205 | | MaybeRefDeep<InvalidateQueryFilters<TTaggedQueryKey>> |
| 206 | | (() => InvalidateQueryFilters<TTaggedQueryKey>) = {}, |
| 207 | options: MaybeRefDeep<InvalidateOptions> | (() => InvalidateOptions) = {}, |
| 208 | ): Promise<void> { |
| 209 | const filtersCloned = cloneDeepUnref( |
| 210 | filters as MaybeRefDeep<InvalidateQueryFilters<TTaggedQueryKey>>, |
| 211 | ) |
| 212 | const optionsCloned = cloneDeepUnref( |
| 213 | options as MaybeRefDeep<InvalidateOptions>, |
| 214 | ) |
| 215 | |
| 216 | super.invalidateQueries( |
| 217 | { ...filtersCloned, refetchType: 'none' }, |
| 218 | optionsCloned, |
| 219 | ) |
| 220 | |
| 221 | if (filtersCloned.refetchType === 'none') { |
| 222 | return Promise.resolve() |
| 223 | } |
| 224 | |
| 225 | const refetchFilters: RefetchQueryFilters<TTaggedQueryKey> = { |
| 226 | ...filtersCloned, |
| 227 | type: filtersCloned.refetchType ?? filtersCloned.type ?? 'active', |
| 228 | } |
| 229 | |
| 230 | // (dosipiuk): We need to delay `refetchQueries` execution to next macro task for all reactive values to be updated. |
| 231 | // This ensures that `context` in `queryFn` while `invalidating` along reactive variable change has correct |
| 232 | return nextTick().then(() => { |
| 233 | return super.refetchQueries(refetchFilters, optionsCloned) |
| 234 | }) |
| 235 | } |
| 236 | |
| 237 | refetchQueries<TTaggedQueryKey extends QueryKey = QueryKey>( |
| 238 | filters?: RefetchQueryFilters<TTaggedQueryKey>, |