PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

TypeORM FindOperators avec transformateur

Ok donc après plusieurs heures de lecture du code et de la façon dont les requêtes sont assemblées dans TypeORM, j'ai trouvé la solution suivante.

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

En d'autres termes, j'ai dû appliquer de manière récursive la fonction de transformation à la propriété _value de tous les FindOperators.