From 2c131e16a61f79f54fd307ecce2fd2572a2e0c7e Mon Sep 17 00:00:00 2001 From: Ben Taylor Date: Tue, 30 Jan 2024 16:49:15 +1100 Subject: [PATCH] Add support for handlebars options argument --- src/expressions.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/expressions.ts b/src/expressions.ts index 7070acf..c1a178e 100644 --- a/src/expressions.ts +++ b/src/expressions.ts @@ -123,7 +123,20 @@ export const resolveExpression = ( export const resolveHelper = ( expression: Glimmer.MustacheStatement | Glimmer.SubExpression ): Babel.CallExpression => { - return Babel.callExpression(Babel.identifier(expression.path.original?.toString() ?? 'undefined'), expression.params.map(resolveExpression)) + const params: Array = expression.params.map(resolveExpression); + + // Handlebars helpers always take an options argument as the last parameter + params.push( + Babel.objectExpression( + expression.hash.pairs.map((pair) => { + return Babel.objectProperty( + Babel.stringLiteral(pair.key), + resolveExpression(pair.value) + ) + }) + ) + ) + return Babel.callExpression(Babel.identifier(expression.path.original?.toString() ?? 'undefined'), params) } /**