Skip to content
This repository was archived by the owner on Jun 24, 2025. It is now read-only.

Commit 0c87fab

Browse files
committed
server-esm: Fix wonderful token type mismatch
1 parent 20c729e commit 0c87fab

File tree

5 files changed

+23
-19
lines changed

5 files changed

+23
-19
lines changed

spec/search/parens.spec.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
1-
const handleParens = require('../../src/services/search/services/handle_parens');
1+
import handleParens from "../../src/services/search/services/handle_parens";
2+
import { TokenStructure } from "../../src/services/search/services/types";
23

34
describe("Parens handler", () => {
45
it("handles parens", () => {
56
const input = ["(", "hello", ")", "and", "(", "(", "pick", "one", ")", "and", "another", ")"]
67
.map(token => ({token}));
78

8-
expect(handleParens(input))
9-
.toEqual([
9+
const actual: TokenStructure = [
10+
[
11+
{token: "hello"}
12+
],
13+
{token: "and"},
14+
[
1015
[
11-
{token: "hello"}
16+
{token: "pick"},
17+
{token: "one"}
1218
],
1319
{token: "and"},
14-
[
15-
[
16-
{token: "pick"},
17-
{token: "one"}
18-
],
19-
{token: "and"},
20-
{token: "another"}
21-
]
22-
]);
20+
{token: "another"}
21+
]
22+
];
23+
24+
expect(handleParens(input)).toEqual(actual);
2325
});
2426
});

src/services/search/services/handle_parens.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { TokenData } from "./types";
1+
import { TokenData, TokenStructure } from "./types";
22

33
/**
44
* This will create a recursive object from a list of tokens - tokens between parenthesis are grouped in a single array
55
*/
6-
function handleParens(tokens: (TokenData | TokenData[])[]) {
6+
function handleParens(tokens: TokenStructure) {
77
if (tokens.length === 0) {
88
return [];
99
}

src/services/search/services/parse.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import utils from "../../utils.js";
2121
import TrueExp from "../expressions/true.js";
2222
import IsHiddenExp from "../expressions/is_hidden.js";
2323
import SearchContext from "../search_context.js";
24-
import { TokenData } from "./types";
24+
import { TokenData, TokenStructure } from "./types";
2525
import Expression from "../expressions/expression.js";
2626

2727
function getFulltext(_tokens: TokenData[], searchContext: SearchContext) {
@@ -448,7 +448,7 @@ function getExpression(tokens: TokenData[], searchContext: SearchContext, level
448448

449449
function parse({fulltextTokens, expressionTokens, searchContext}: {
450450
fulltextTokens: TokenData[],
451-
expressionTokens: (TokenData | TokenData[])[],
451+
expressionTokens: TokenStructure,
452452
searchContext: SearchContext,
453453
originalQuery: string
454454
}) {

src/services/search/services/search.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import log from "../../log.js";
1313
import hoistedNoteService from "../../hoisted_note.js";
1414
import BNote from "../../../becca/entities/bnote.js";
1515
import BAttribute from "../../../becca/entities/battribute.js";
16-
import { SearchParams, TokenData } from "./types";
16+
import { SearchParams, TokenStructure } from "./types";
1717
import Expression from "../expressions/expression.js";
1818
import sql from "../../sql.js";
1919

@@ -273,7 +273,7 @@ function parseQueryToExpression(query: string, searchContext: SearchContext) {
273273
const {fulltextQuery, fulltextTokens, expressionTokens} = lex(query);
274274
searchContext.fulltextQuery = fulltextQuery;
275275

276-
let structuredExpressionTokens: (TokenData | TokenData[])[];
276+
let structuredExpressionTokens: TokenStructure;
277277

278278
try {
279279
structuredExpressionTokens = handleParens(expressionTokens);

src/services/search/services/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
export type TokenStructure = (TokenData | TokenStructure)[];
2+
13
export interface TokenData {
24
token: string;
35
inQuotes?: boolean;

0 commit comments

Comments
 (0)