From ac96d6bcc9cc70890881b889ea79ab5e13dbd01a Mon Sep 17 00:00:00 2001 From: Christophe Eymard Date: Mon, 22 Jun 2026 12:12:19 +0200 Subject: [PATCH] allow object prop shorthand notation like {.Prop1.Prop2, .Prop3} --- src/parse.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/parse.ts b/src/parse.ts index 2f61f5c..a39fde2 100644 --- a/src/parse.ts +++ b/src/parse.ts @@ -171,16 +171,23 @@ export function parse(query: string, options?: JSONQueryParseOptions): JSONQuery skipWhitespace() } - const key = - parseString() ?? - parseUnquotedString() ?? - parseInteger() ?? - throwSyntaxError('Key expected') + if (query[i] === ".") { + const prop = parseProperty() + const key = prop[prop.length - 1] + object[key] = prop + } else { + const key = + parseString() ?? + parseUnquotedString() ?? + parseInteger() ?? + throwSyntaxError('Key expected') - skipWhitespace() - eatChar(':') + skipWhitespace() + eatChar(':') + + object[key] = parseOperator() + } - object[key] = parseOperator() } eatChar('}')