(
app: App,
vaultPath: string,
onMappingDetected: (originalPath: string, safeFileName: string) => void
)
| 19 | } |
| 20 | |
| 21 | export async function detectHighlightFilesFromStorage( |
| 22 | app: App, |
| 23 | vaultPath: string, |
| 24 | onMappingDetected: (originalPath: string, safeFileName: string) => void |
| 25 | ): Promise<string[]> { |
| 26 | try { |
| 27 | const highlightsDir = FilePathUtils.getHighlightsDir(vaultPath); |
| 28 | const files = await app.vault.adapter.list(highlightsDir); |
| 29 | const detectedFiles: string[] = []; |
| 30 | |
| 31 | for (const file of files.files) { |
| 32 | if (!file.endsWith('.json')) continue; |
| 33 | |
| 34 | const baseName = file.replace(/\.json$/, '').replace(highlightsDir + '/', ''); |
| 35 | const originalPath = FilePathUtils.fromSafeFileName(baseName); |
| 36 | detectedFiles.push(originalPath); |
| 37 | onMappingDetected(originalPath, baseName); |
| 38 | } |
| 39 | |
| 40 | return detectedFiles; |
| 41 | } catch (error) { |
| 42 | console.warn('扫描高亮目录失败:', error); |
| 43 | return []; |
| 44 | } |
| 45 | } |
no test coverage detected