Skip to content

Commit

Permalink
Merge pull request #3 from StileEducation/fix/helper-keyed-options
Browse files Browse the repository at this point in the history
Add support for handlebars options argument
  • Loading branch information
taybenlor authored Jan 30, 2024
2 parents 22f4df7 + 2c131e1 commit f283ea7
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/expressions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Babel.Expression> = 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)
}

/**
Expand Down

0 comments on commit f283ea7

Please sign in to comment.