fix: distinct multiple layer of cache

This commit is contained in:
Julien Calixte
2024-10-27 12:33:26 +01:00
parent ffa7c42021
commit 84789393ad
4 changed files with 46 additions and 15 deletions

View File

@@ -3,23 +3,41 @@ import { DataType } from '@/data/DataType.enum'
import { Note } from '@/modules/note/models/Note'
import { useUserRepoStore } from '@/modules/repo/store/userRepo.store'
type NoteCacheResult =
| {
note: Note
from: 'sha'
}
| { note: Note; from: 'path' }
| { note: null; from: null }
export const prepareNoteCache = (sha: string, path?: string) => {
const store = useUserRepoStore()
const noteId = data.generateId(DataType.Note, sha)
const notePath = path ? data.generateId(DataType.Note, path) : null
const getCachedNote = async () => {
const getCachedNote = async (): Promise<NoteCacheResult> => {
const note = await data.get<DataType.Note, Note>(noteId)
if (note) {
return note
return { note, from: 'sha' }
}
if (notePath) {
return data.get<DataType.Note, Note>(notePath)
const note = await data.get<DataType.Note, Note>(notePath)
if (!note) {
return {
note: null,
from: null
}
}
return {
note,
from: 'path'
}
}
return null
return { note: null, from: null }
}
const saveCacheNote = async (