From ecbbcd4e998e0be6a0efc84b862459e7f3323ac5 Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Sat, 22 Oct 2022 19:59:10 +0200 Subject: [PATCH] Catching possible errors --- src/cache-manager.ts | 19 ----------- src/tools/utils.ts | 79 ++++++++++++++++++++++++++++++-------------- 2 files changed, 54 insertions(+), 44 deletions(-) diff --git a/src/cache-manager.ts b/src/cache-manager.ts index dbfe51a..d3fcfba 100644 --- a/src/cache-manager.ts +++ b/src/cache-manager.ts @@ -54,25 +54,6 @@ class CacheManager { return !indexedNote || indexedNote.mtime !== file.stat.mtime } - // private async _writeMinisearchIndex(minisearch: MiniSearch): Promise { - // if (!settings.persistCache) { - // return - // } - // const json = JSON.stringify(minisearch) - // const data = deflate(json) - // await app.vault.adapter.writeBinary(minisearchCacheFilePath, data as any) - // console.log('Omnisearch - Minisearch index saved on disk') - // } - // - // private async _saveNotesCache() { - // if (!settings.persistCache) { - // return - // } - // const json = JSON.stringify(Array.from(this.documentsCache.entries())) - // const data = deflate(json) - // await app.vault.adapter.writeBinary(notesCacheFilePath, data as any) - // console.log('Omnisearch - Notes cache saved on disk') - // } } export const cacheManager = new CacheManager() diff --git a/src/tools/utils.ts b/src/tools/utils.ts index f051a33..89e9547 100644 --- a/src/tools/utils.ts +++ b/src/tools/utils.ts @@ -1,4 +1,4 @@ -import { type CachedMetadata, Platform } from 'obsidian' +import { type CachedMetadata, Notice, Platform } from 'obsidian' import type { SearchMatch } from '../globals' import { excerptAfter, @@ -78,16 +78,25 @@ export function loopIndex(index: number, nbItems: number): number { } export function makeExcerpt(content: string, offset: number): string { - const pos = offset ?? -1 - if (pos > -1) { - const from = Math.max(0, pos - excerptBefore) - const to = Math.min(content.length, pos + excerptAfter) - content = - (from > 0 ? '…' : '') + - content.slice(from, to).trim() + - (to < content.length - 1 ? '…' : '') + try { + const pos = offset ?? -1 + if (pos > -1) { + const from = Math.max(0, pos - excerptBefore) + const to = Math.min(content.length, pos + excerptAfter) + content = + (from > 0 ? '…' : '') + + content.slice(from, to).trim() + + (to < content.length - 1 ? '…' : '') + } + return escapeHTML(content) + } catch (e) { + new Notice( + 'Omnisearch - Error while creating excerpt, see developer console' + ) + console.error(`Omnisearch - Error while creating excerpt`) + console.error(e) + return '' } - return escapeHTML(content) } /** @@ -142,25 +151,45 @@ export function getAliasesFromMetadata( metadata: CachedMetadata | null ): string[] { const arrOrString = metadata?.frontmatter?.aliases ?? [] - return ( - Array.isArray(arrOrString) ? arrOrString : arrOrString.toString().split(',') - ) - .map(s => (s ? s.trim() : s)) - .filter(s => !!s) + 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 [] + } } export function getTagsFromMetadata(metadata: CachedMetadata | null): string[] { - 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) + 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 - ) + 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 [] + } } /**