feat: image variants cache panel
This commit is contained in:
1 parent
951fef18ba
commit
d768668014
53 files changed
+5809
-46
No files matched your search
@@ -0,0 +1,65 @@
|
||||
import { useApi } from '@/composables/useApi'
|
||||
|
||||
export type CachePurgeScope = 'all' | 'unused' | 'variant' | 'image'
|
||||
|
||||
export interface CacheVariantStat {
|
||||
name: string
|
||||
enabled: boolean
|
||||
files: number
|
||||
bytes: number
|
||||
}
|
||||
|
||||
export interface CacheImageStat {
|
||||
id: number
|
||||
filename: string
|
||||
url: string
|
||||
files: number
|
||||
bytes: number
|
||||
}
|
||||
|
||||
export interface CacheStats {
|
||||
generated_files: number
|
||||
disk_used: number
|
||||
variants_defined: number
|
||||
variants_enabled: number
|
||||
variants_disabled: number
|
||||
rejected_requests: number
|
||||
rejected_window_days: number
|
||||
unused: { files: number; bytes: number; days: number }
|
||||
by_variant: CacheVariantStat[]
|
||||
top_images: CacheImageStat[]
|
||||
}
|
||||
|
||||
export interface CachePurgeRequest {
|
||||
scope: CachePurgeScope
|
||||
variant?: string
|
||||
image_id?: number
|
||||
}
|
||||
|
||||
export interface CachePurgeResult {
|
||||
scope: CachePurgeScope
|
||||
purged_files: number
|
||||
purged_bytes: number
|
||||
failed_files: number
|
||||
}
|
||||
|
||||
const JSON_HEADERS = { 'Content-Type': 'application/json' }
|
||||
const CACHE_PATH = '/v1/image-variants/cache'
|
||||
|
||||
export function useVariantCache() {
|
||||
const { request } = useApi()
|
||||
|
||||
function getStats(): Promise<CacheStats> {
|
||||
return request<CacheStats>(CACHE_PATH)
|
||||
}
|
||||
|
||||
function purge(input: CachePurgeRequest): Promise<CachePurgeResult> {
|
||||
return request<CachePurgeResult>(`${CACHE_PATH}/purge`, {
|
||||
method: 'POST',
|
||||
headers: JSON_HEADERS,
|
||||
body: JSON.stringify(input),
|
||||
})
|
||||
}
|
||||
|
||||
return { getStats, purge }
|
||||
}
|
||||
Reference in new issue
Block a user