1
0
Fork 0
mirror of https://github.com/paricafe/misskey.git synced 2025-04-21 16:43:08 -05:00

refactor(frontend): intl-stringの処理のパフォーマンス向上 ()

* refactor(frontend): intl-stringの処理のパフォーマンス向上

* ✌️
This commit is contained in:
かっこかり 2025-04-01 17:15:22 +09:00 committed by GitHub
parent f4f9832f8b
commit 4f206eea9f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -9,9 +9,9 @@ import type { toHiragana as toHiraganaType } from 'wanakana';
let toHiragana: typeof toHiraganaType = (str?: string) => str ?? '';
let isWanakanaLoaded = false;
/**
/**
* lazy-loading
*
*
* 使
*/
export async function initIntlString(forceWanakana = false) {
@ -82,16 +82,17 @@ export function normalizeStringWithHiragana(str: string) {
/** aとbが同じかどうか */
export function compareStringEquals(a: string, b: string) {
return (
normalizeString(a) === normalizeString(b) ||
normalizeStringWithHiragana(a) === normalizeStringWithHiragana(b)
);
if (a === b) return true; // まったく同じ場合はtrue。なお、ーマライズ前後で文字数が変化することがあるため、文字数が違うからといってfalseにはできない
if (normalizeString(a) === normalizeString(b)) return true;
if (normalizeStringWithHiragana(a) === normalizeStringWithHiragana(b)) return true;
return false;
}
/** baseにqueryが含まれているかどうか */
export function compareStringIncludes(base: string, query: string) {
return (
normalizeString(base).includes(normalizeString(query)) ||
normalizeStringWithHiragana(base).includes(normalizeStringWithHiragana(query))
);
if (base === query) return true; // まったく同じ場合は含まれていると考えてよいのでtrue
if (base.includes(query)) return true;
if (normalizeString(base).includes(normalizeString(query))) return true;
if (normalizeStringWithHiragana(base).includes(normalizeStringWithHiragana(query))) return true;
return false;
}