mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 22:33:50 +02:00
98 lines
2.7 KiB
JavaScript
98 lines
2.7 KiB
JavaScript
const SECOND = 1000;
|
|
|
|
export const entityQueryPolicies = Object.freeze({
|
|
user: Object.freeze({
|
|
staleTime: 20 * SECOND,
|
|
gcTime: 90 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
avatar: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
world: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
group: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
groupCollection: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
worldCollection: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
instance: Object.freeze({
|
|
staleTime: 0,
|
|
gcTime: 10 * SECOND,
|
|
retry: 0,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
friendList: Object.freeze({
|
|
staleTime: 20 * SECOND,
|
|
gcTime: 90 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
favoriteCollection: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
galleryCollection: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
inventoryCollection: Object.freeze({
|
|
staleTime: 20 * SECOND,
|
|
gcTime: 120 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
}),
|
|
fileObject: Object.freeze({
|
|
staleTime: 60 * SECOND,
|
|
gcTime: 300 * SECOND,
|
|
retry: 1,
|
|
refetchOnWindowFocus: false
|
|
})
|
|
});
|
|
|
|
/**
|
|
* @param {'user'|'avatar'|'world'|'group'|'groupCollection'|'worldCollection'|'instance'|'friendList'|'favoriteCollection'|'galleryCollection'|'inventoryCollection'|'fileObject'} entity
|
|
* @returns {{staleTime: number, gcTime: number, retry: number, refetchOnWindowFocus: boolean}}
|
|
*/
|
|
export function getEntityQueryPolicy(entity) {
|
|
return entityQueryPolicies[entity];
|
|
}
|
|
|
|
/**
|
|
* @param {{staleTime: number, gcTime: number, retry: number, refetchOnWindowFocus: boolean}} policy
|
|
* @returns {{staleTime: number, gcTime: number, retry: number, refetchOnWindowFocus: boolean}}
|
|
*/
|
|
export function toQueryOptions(policy) {
|
|
return {
|
|
staleTime: policy.staleTime,
|
|
gcTime: policy.gcTime,
|
|
retry: policy.retry,
|
|
refetchOnWindowFocus: policy.refetchOnWindowFocus
|
|
};
|
|
}
|