PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Geben Sie ORM FindOperators mit Transformator ein

Okay, nachdem ich mir mehrere Stunden lang den Code durchgelesen habe und wie Abfragen in TypeORM zusammengesetzt werden, bin ich auf die folgende Lösung gekommen.

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;
  }

Mit anderen Worten, ich musste die Transformer-Funktion rekursiv auf die Eigenschaft _value aller FindOperators anwenden.