From 59e6fcfdce7a4d05b90e38cf3c3599a9641aa9df Mon Sep 17 00:00:00 2001 From: bas080 Date: Thu, 29 May 2025 03:12:28 +0300 Subject: [PATCH] Small improvements to the typings --- browser/queryan.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/browser/queryan.ts b/browser/queryan.ts index 3561511..782ea7a 100644 --- a/browser/queryan.ts +++ b/browser/queryan.ts @@ -1,7 +1,8 @@ import { complement, isEmpty, remove } from "./helpers.js"; -type Token = [string, number]; -type Tokens = Token[]; +export type Token = [string, number]; +export type Tokens = Token[]; +type Predicate = (_: any) => boolean; // Add to stop TS from complaining. const T = (...args: any) => true; @@ -10,7 +11,7 @@ const isOrToken = (token: Token): boolean => const isNotToken = (token: Token): boolean => Boolean(token && token[0] === "not"); const isWhitespaceToken = ([token]: Token): boolean => /^\s/.test(token); -const isTextToken = complement(isWhitespaceToken); +const isTextToken = complement(isWhitespaceToken) as (token: Token) => boolean; const isLeftOfOr = ([, index]: Token, tokens: Tokens): boolean => isOrToken(tokens[index + 2]); const isRightOfOr = ([, index]: Token, tokens: Tokens): boolean => @@ -108,8 +109,6 @@ function stringify(tokens: Tokens): string { return tokens.map(tokenValue).join(""); } -type Predicate = (_: any) => boolean; - const or = (before: Predicate, token: Predicate) => (issue: string) => before(issue) || token(issue); const and = (before: Predicate, token: Predicate) => (issue: string) =>