21 lines
613 B
TypeScript
21 lines
613 B
TypeScript
import { ref } from 'vue'
|
|
|
|
const UPLOADED_IMAGES_PATH = '/static/uploadedImages/'
|
|
|
|
export const mediaRevision = ref(0)
|
|
|
|
export function bumpMediaRevision() {
|
|
mediaRevision.value += 1
|
|
}
|
|
|
|
export function withMediaRevision(src: string | undefined, revision = mediaRevision.value) {
|
|
if (!src || revision === 0 || !src.includes(UPLOADED_IMAGES_PATH)) {
|
|
return src
|
|
}
|
|
const hashAt = src.indexOf('#')
|
|
const base = hashAt === -1 ? src : src.slice(0, hashAt)
|
|
const hash = hashAt === -1 ? '' : src.slice(hashAt)
|
|
const separator = base.includes('?') ? '&' : '?'
|
|
return `${base}${separator}rev=${revision}${hash}`
|
|
}
|