refactor: reduce complexity in parsing.rs and noteListHelpers.ts (gate: 9.31 → 9.33)
Refactored two files to improve code health:
1. src-tauri/src/vault/parsing.rs (7.9 → 8.54, +0.64)
- Extracted helper functions to reduce nesting in strip_markdown_chars
(process_wikilink, extract_wikilink_display, process_markdown_link)
- Refactored strip_list_marker to eliminate bumpy road pattern
(strip_unordered_marker, strip_ordered_marker)
2. src/utils/noteListHelpers.ts (9.28 → 10.0, +0.72)
- Reduced cyclomatic complexity in isInboxEntry from 15 to ~4
(hasAnyValidLinks, hasValidBodyLinks, hasValidFrontmatterLinks)
- Extracted complex conditional into wasCreatedBeforeLastModification
Gate threshold raised: 9.31 → 9.33 (conservative, pending CodeScene re-analysis)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -43,12 +43,16 @@ export function formatSubtitle(entry: VaultEntry): string {
|
||||
return parts.join(' \u00b7 ')
|
||||
}
|
||||
|
||||
function wasCreatedBeforeLastModification(entry: VaultEntry): boolean {
|
||||
return !!(entry.createdAt && entry.modifiedAt && entry.createdAt !== entry.modifiedAt)
|
||||
}
|
||||
|
||||
export function formatSearchSubtitle(entry: VaultEntry): string {
|
||||
const parts: string[] = []
|
||||
const modified = entry.modifiedAt ?? entry.createdAt
|
||||
if (modified) parts.push(relativeDate(modified))
|
||||
if (entry.createdAt && entry.modifiedAt && entry.createdAt !== entry.modifiedAt) {
|
||||
parts.push(`Created ${relativeDate(entry.createdAt)}`)
|
||||
if (wasCreatedBeforeLastModification(entry)) {
|
||||
parts.push(`Created ${relativeDate(entry.createdAt!)}`)
|
||||
}
|
||||
if (entry.wordCount > 0) {
|
||||
parts.push(`${entry.wordCount.toLocaleString()} words`)
|
||||
@@ -391,20 +395,26 @@ function hasValidRef(refs: string[], validTargets: Set<string>): boolean {
|
||||
export function isInboxEntry(entry: VaultEntry, validTargets: Set<string>): boolean {
|
||||
if (entry.trashed || entry.archived) return false
|
||||
if (entry.isA === 'Type') return false
|
||||
return !hasAnyValidLinks(entry, validTargets)
|
||||
}
|
||||
|
||||
// Check body outgoing links
|
||||
if (entry.outgoingLinks.some((link) => validTargets.has(link) || validTargets.has(link.split('/').pop() ?? ''))) return false
|
||||
function hasAnyValidLinks(entry: VaultEntry, validTargets: Set<string>): boolean {
|
||||
return hasValidBodyLinks(entry.outgoingLinks, validTargets) || hasValidFrontmatterLinks(entry, validTargets)
|
||||
}
|
||||
|
||||
function hasValidBodyLinks(outgoingLinks: string[], validTargets: Set<string>): boolean {
|
||||
return outgoingLinks.some((link) => validTargets.has(link) || validTargets.has(link.split('/').pop() ?? ''))
|
||||
}
|
||||
|
||||
function hasValidFrontmatterLinks(entry: VaultEntry, validTargets: Set<string>): boolean {
|
||||
if (entry.belongsTo?.length && hasValidRef(entry.belongsTo, validTargets)) return true
|
||||
if (entry.relatedTo?.length && hasValidRef(entry.relatedTo, validTargets)) return true
|
||||
|
||||
// Check frontmatter relationship refs
|
||||
if (entry.belongsTo?.length && hasValidRef(entry.belongsTo, validTargets)) return false
|
||||
if (entry.relatedTo?.length && hasValidRef(entry.relatedTo, validTargets)) return false
|
||||
if (entry.relationships) {
|
||||
for (const refs of Object.values(entry.relationships)) {
|
||||
if (hasValidRef(refs, validTargets)) return false
|
||||
}
|
||||
return Object.values(entry.relationships).some((refs) => hasValidRef(refs, validTargets))
|
||||
}
|
||||
|
||||
return true
|
||||
return false
|
||||
}
|
||||
|
||||
const INBOX_PERIOD_DAYS: Record<InboxPeriod, number> = {
|
||||
|
||||
Reference in New Issue
Block a user