CloneAttribute

Recebe como parâmetro uma matriz de chave e outro objeto do tipo { chave: valor }, retorna uma matriz de objetos com o mesmo valor, é útil para consultas localizar ONDE + OU.

Sem mapeador:

const param: FindOptionsWhere<Example> = {
  key: "example",
};

const example = await this.examplesRepository.findBy(
  { 
    where: [
      { id: key },
      { name: key },
      { description: key },
    ]
  },
  trx,
);

// Busca onde id = key OU name = key OU description = key

Usando mapeador:

import { cloneAttribute } from "@utils/mappers";

const param: FindOptionsWhere<Example> = {
  key: "example",
};

const example = await this.examplesRepository.findBy(
  {
    where: cloneAttribute<Example>(param, ['id', 'name', 'description']),
  },
  trx,
);

// Busca onde id = key OU name = key OU description = key