From 6b9b9d212fe9d30a26100c41016a0074f4546a59 Mon Sep 17 00:00:00 2001 From: MareStare Date: Tue, 4 Mar 2025 04:56:01 +0000 Subject: [PATCH] Update the format of `LexResult` to a more readable one (array to object conversion) --- assets/js/query/lex.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/assets/js/query/lex.ts b/assets/js/query/lex.ts index e98d8840..d3e1a2de 100644 --- a/assets/js/query/lex.ts +++ b/assets/js/query/lex.ts @@ -22,8 +22,15 @@ const tokenList: Token[] = [ export type ParseTerm = (term: string, fuzz: number, boost: number) => AstMatcher; -export type Range = [number, number]; -export type TermContext = [Range, string]; +export interface Range { + start: number; + end: number; +} + +export interface TermContext { + range: Range; + content: string; +} export interface LexResult { tokenList: TokenList; @@ -61,7 +68,11 @@ export function generateLexResult(searchStr: string, parseTerm: ParseTerm): LexR if (searchTerm !== null) { // Push to stack. ret.tokenList.push(parseTerm(searchTerm, fuzz, boost)); - ret.termContexts.push([[termIndex, termIndex + searchTerm.length], searchTerm]); + + ret.termContexts.push({ + range: { start: termIndex, end: termIndex + searchTerm.length }, + content: searchTerm, + }); // Reset term and options data. boost = 1; fuzz = 0;