mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-15 09:15:47 +02:00
* Update settings.vue * Update settings.vue * Update settings.vue * Update settings.vue * Update settings.vue * Update performance.vue * Update performance.vue * Update performance.vue * Update external-services.vue * wip * wip * Update security.vue * Update settings.vue * Update CHANGELOG.md * wip * Update moderation.vue * wip * Update branding.vue * wip * Update email-settings.vue * Update system-webhook.vue * Update MkSuperMenu.vue * Update index.vue
38 lines
836 B
TypeScript
38 lines
836 B
TypeScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import type { GeneratedSearchIndexItem } from 'search-index';
|
|
|
|
export type SearchIndexItem = {
|
|
id: string;
|
|
parentId?: string;
|
|
path?: string;
|
|
label: string;
|
|
keywords: string[];
|
|
texts: string[];
|
|
icon?: string;
|
|
};
|
|
|
|
export function genSearchIndexes(generated: GeneratedSearchIndexItem[]): SearchIndexItem[] {
|
|
const rootMods = new Map(generated.map(item => [item.id, item]));
|
|
|
|
// link inlining here
|
|
for (const item of generated) {
|
|
if (item.inlining) {
|
|
for (const id of item.inlining) {
|
|
const inline = rootMods.get(id);
|
|
if (inline) {
|
|
inline.parentId = item.id;
|
|
inline.path = item.path;
|
|
} else {
|
|
console.log('[Settings Search Index] Failed to inline', id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return generated;
|
|
}
|