PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

TypeORM FindOperators com transformador


Ok, depois de várias horas lendo o código e como as consultas são montadas no TypeORM, cheguei à seguinte solução.
toPostgres(value : any) : any {
    let returnValue = null;
    if(! value) {
      return null;
    } else if(value instanceof CustomClass) {
      returnValue = `${value.propertyA} ${value.propertyB}`;
    } else {
      let findValue = value as FindOperator<CustomClass>;
      returnValue = new FindOperator<CustomClass>( findValue[`_type`] as FindOperatorType, toPostgres(findValue.value), findValue.useParameter, findValue.multipleParameters)
    }
    return returnValue;
  }

Em outras palavras, tive que aplicar recursivamente a função do transformador à propriedade _value de todos os FindOperators.