From 8a2c7e671523985a5b915449a81a75defa91ed7c Mon Sep 17 00:00:00 2001 From: Johann Schopplich Date: Fri, 5 Dec 2025 14:15:24 +0100 Subject: [PATCH] refactor: consolidate numeric literal pattern definition --- packages/toon/src/shared/literal-utils.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/toon/src/shared/literal-utils.ts b/packages/toon/src/shared/literal-utils.ts index 8e8ff80..2b32efc 100644 --- a/packages/toon/src/shared/literal-utils.ts +++ b/packages/toon/src/shared/literal-utils.ts @@ -1,5 +1,7 @@ import { FALSE_LITERAL, NULL_LITERAL, TRUE_LITERAL } from '../constants' +const NUMERIC_LITERAL_PATTERN = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:e[+-]?\d+)?$/i + export function isBooleanOrNullLiteral(token: string): boolean { return token === TRUE_LITERAL || token === FALSE_LITERAL || token === NULL_LITERAL } @@ -15,8 +17,7 @@ export function isNumericLiteral(token: string): boolean { return false // Enforce JSON-like grammar with no forbidden leading zeros - const numericPattern = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:e[+-]?\d+)?$/i - if (!numericPattern.test(token)) + if (!NUMERIC_LITERAL_PATTERN.test(token)) return false const numericValue = Number(token)