diff options
| author | anatawa12 <anatawa12@icloud.com> | 2025-04-07 14:35:32 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-07 14:35:32 +0900 |
| commit | 85a7b10fcde1d461b138c0e0ad5507df66959162 (patch) | |
| tree | d07f85a954e34faa35e1ca80cdcfaf8538451491 /packages/frontend/src/utility | |
| parent | 🎨 (diff) | |
| download | sharkey-85a7b10fcde1d461b138c0e0ad5507df66959162.tar.gz sharkey-85a7b10fcde1d461b138c0e0ad5507df66959162.tar.bz2 sharkey-85a7b10fcde1d461b138c0e0ad5507df66959162.zip | |
refactor serach index generator code (#15772)
* refactor: flatten search index
* chore: use Function() to simplify parsing attribute
* chore: remove comment handling
* chore: simplify processing SearchLabel and SearchKeyword element
* chore: use SearchLabel in mutedUsers
* chore: small improvements
* chore: remove a fallback path and simplify the entire code
* fix: result path is not correct
* chore: inline function
Diffstat (limited to 'packages/frontend/src/utility')
| -rw-r--r-- | packages/frontend/src/utility/settings-search-index.ts | 16 | ||||
| -rw-r--r-- | packages/frontend/src/utility/virtual.d.ts | 2 |
2 files changed, 5 insertions, 13 deletions
diff --git a/packages/frontend/src/utility/settings-search-index.ts b/packages/frontend/src/utility/settings-search-index.ts index 22e2407b15..7ed97ed34f 100644 --- a/packages/frontend/src/utility/settings-search-index.ts +++ b/packages/frontend/src/utility/settings-search-index.ts @@ -8,35 +8,27 @@ import type { GeneratedSearchIndexItem } from 'search-index:settings'; export type SearchIndexItem = { id: string; + parentId?: string; path?: string; label: string; keywords: string[]; icon?: string; - children?: SearchIndexItem[]; }; const rootMods = new Map(generated.map(item => [item.id, item])); -function walk(item: GeneratedSearchIndexItem) { +// link inlining here +for (const item of generated) { if (item.inlining) { for (const id of item.inlining) { const inline = rootMods.get(id); if (inline) { - (item.children ??= []).push(inline); - rootMods.delete(id); + inline.parentId = item.id; } else { console.log('[Settings Search Index] Failed to inline', id); } } } - - for (const child of item.children ?? []) { - walk(child); - } -} - -for (const item of generated) { - walk(item); } export const searchIndexes: SearchIndexItem[] = generated; diff --git a/packages/frontend/src/utility/virtual.d.ts b/packages/frontend/src/utility/virtual.d.ts index 59470a1f5e..63dc4372b7 100644 --- a/packages/frontend/src/utility/virtual.d.ts +++ b/packages/frontend/src/utility/virtual.d.ts @@ -6,12 +6,12 @@ declare module 'search-index:settings' { export type GeneratedSearchIndexItem = { id: string; + parentId?: string; path?: string; label: string; keywords: string[]; icon?: string; inlining?: string[]; - children?: GeneratedSearchIndexItem[]; }; export const searchIndexes: GeneratedSearchIndexItem[]; |