code_builder icon indicating copy to clipboard operation
code_builder copied to clipboard

`LiteralMapExpression` needs support for collection-if expression

Open lukehutch opened this issue 2 years ago • 0 comments

LiteralMapExpression does not yet support collection-if. This means it's not possible to generate the following:

{
  if (x != null) 'x' : x,
  if (y != null) 'y': y,
  if (z != null) 'z': z,
}

I need to be able to add these conditions in order to minimize the text-rendered size of sparse JSON maps.

Presumably the way to support this would be similar to how literalSpread works:

literalMap({
  collectionIf(refer('x').isNotNull(), 'x'): refer('x'),
  // ...
})

Expression.visitLiteralMapExpression will also need to be updated to support this (and it should work for sets and lists too)..

lukehutch avatar Jan 03 '24 08:01 lukehutch