diff --git a/src/__tests__/utils-tests.ts b/src/__tests__/utils-tests.ts index 043466d..358a100 100644 --- a/src/__tests__/utils-tests.ts +++ b/src/__tests__/utils-tests.ts @@ -19,7 +19,7 @@ describe('Utils', () => { // Arrange const metadata = { frontmatter: { aliases: ['foo', 'bar'] }, - } as CachedMetadata + } as unknown as CachedMetadata // Act const actual = getAliasesFromMetadata(metadata) // Assert @@ -29,7 +29,7 @@ describe('Utils', () => { // Arrange const metadata = { frontmatter: { aliases: 'foo, bar' }, - } as CachedMetadata + } as unknown as CachedMetadata // Act const actual = getAliasesFromMetadata(metadata) // Assert @@ -39,7 +39,7 @@ describe('Utils', () => { // Arrange const metadata = { frontmatter: { aliases: '' }, - } as CachedMetadata + } as unknown as CachedMetadata // Act const actual = getAliasesFromMetadata(metadata) // Assert diff --git a/src/tools/utils.ts b/src/tools/utils.ts index 89e9547..b192bf3 100644 --- a/src/tools/utils.ts +++ b/src/tools/utils.ts @@ -1,4 +1,10 @@ -import { type CachedMetadata, Notice, Platform } from 'obsidian' +import { + type CachedMetadata, + Notice, + Platform, + getAllTags, + parseFrontMatterAliases, +} from 'obsidian' import type { SearchMatch } from '../globals' import { excerptAfter, @@ -150,46 +156,13 @@ export function stripMarkdownCharacters(text: string): string { export function getAliasesFromMetadata( metadata: CachedMetadata | null ): string[] { - const arrOrString = metadata?.frontmatter?.aliases ?? [] - try { - return ( - Array.isArray(arrOrString) - ? arrOrString - : arrOrString.toString().split(',') - ) - .map(s => (s ? s.trim() : s)) - .filter(s => !!s) - } catch (e) { - new Notice( - 'Omnisearch - Error while getting aliases from file, see developer console' - ) - console.error(`Omnisearch - Error while getting aliases from file`) - console.error(e) - return [] - } + return metadata?.frontmatter + ? parseFrontMatterAliases(metadata.frontmatter) ?? [] + : [] } export function getTagsFromMetadata(metadata: CachedMetadata | null): string[] { - try { - const arrOrString = metadata?.frontmatter?.tags ?? [] - const fromFrontMatter = ( - Array.isArray(arrOrString) ? arrOrString : arrOrString.split(',') - ) - .map(s => (s ? s.trim() : s)) - .filter(s => !!s) - const fromBody = (metadata?.tags ?? []).map(t => t.tag) - - return [...fromFrontMatter, ...fromBody].map(t => - t[0] !== '#' ? '#' + t : t - ) - } catch (e) { - new Notice( - 'Omnisearch - Error while getting tags from file, see developer console' - ) - console.error(`Omnisearch - Error while getting tags from file`) - console.error(e) - return [] - } + return metadata ? getAllTags(metadata) ?? [] : [] } /** diff --git a/src/typings/types-obsidian.d.ts b/src/typings/types-obsidian.d.ts index b6c9eee..ce997a3 100644 --- a/src/typings/types-obsidian.d.ts +++ b/src/typings/types-obsidian.d.ts @@ -5,11 +5,6 @@ declare module 'obsidian' { isUserIgnored?(path: string): boolean } - interface FrontMatterCache { - aliases?: string[] | string - tags?: string[] | string - } - interface ViewState { state?: { file?: string