edgedb-js icon indicating copy to clipboard operation
edgedb-js copied to clipboard

Type incorrect for `union` operation on set with array properties

Open nerdoza opened this issue 5 months ago • 2 comments

Code The code causing the error.

const PersonIdentifierParams = {
  identifier: e.str,
  tokenizedName: e.array(e.str),
}

const agentIdentifiers = e.for(
  e.op(
    'distinct',
    e.op(
      e.op(
        e.op(
          e.array_unpack(params.feeTransactions).agentIdentifier,
          'union',
          e.array_unpack(params.paymentTransactions).agentIdentifier,
        ),
        'union',
        e.array_unpack(params.chargebackTransactions).agentIdentifier,
      ),
      'union',
      e.array_unpack(params.holdTransactions).agentIdentifier,
    ),
  ),
  agentIdentifierParams => e.op(
    e.assert_single(
      e.select(e.comp.AgentIdentifier, agentIdentifier => ({
        filter: e.op(
          e.op(
            e.op(agentIdentifier.tokenizedName, '?=', normalizeTupleArrayOp(agentIdentifierParams.tokenizedName)),
            'and',
            e.op(agentIdentifier.identifier, '?=', normalizeTupleStringOp(agentIdentifierParams.identifier)),
          ),
          'and',
          agentIdentifier.owner.isSelf,
        ),
      })),
    ),
    '??',
    e.insert(e.comp.AgentIdentifier, {
      identifier: normalizeTupleStringOp(agentIdentifierParams.identifier),
      owner: e.core.global.currentUser,
      tokenizedName: normalizeTupleArrayOp(agentIdentifierParams.tokenizedName),
    }),
  ),
)

Error or desired behavior

The expectation from the union of the param e.array(e.str) type be the same type, but for some reason it returns a type never.

Versions (please complete the following information):

  • OS:
  • EdgeDB version (e.g. 2.0): 6.4+4e5cdad
  • EdgeDB CLI version (e.g. 2.0): Gel CLI 7.3.0-dev.1347+7e5a953
  • edgedb-js version (e.g. 0.20.10;): [email protected]
  • @edgedb/generate version (e.g. 0.0.7;): @gel/[email protected]
  • TypeScript version: 5.7.3
  • Node/Deno version: v22.13.1

nerdoza avatar May 05 '25 16:05 nerdoza