Get return-type from QueryBuilder

I do not have a connection to a DB, I just use the query-builder for SQL generation.
I try to write a simple function, that takes a querybuilder query in and should return a object of the result type, as if I have awaited a DB with the query:
(I use another db to fetch data - but I need the type from drizzle)


const playerQuery = await queryBuilder
    .select( /* doesnt need to be just a table */ )
    .from( schema.players )
    //.join(...)

const players = MockRequest( playerQuery )

export async function MockRequest<T extends MySqlSelectQueryBuilder>( query: T ): Promise<Awaited<T[]>>
{
    const untypedData = {}
    const data = untypedData as Awaited<T[]>

    return data
}


This is the return-type:

MySqlSelectQueryBuilderBase<MySqlSelectQueryBuilderHKT, "players", {
    id: MySqlColumn<{
        name: "id";
        tableName: "players";
        dataType: "number";
        columnType: "MySqlInt";
        data: number;
        driverParam: string | number;
        notNull: true;
        hasDefault: false;
        enumValues: undefined;
        baseColumn: never;
    }, object>;
    playerId: MySqlColumn<...>;
    firstName: MySqlColumn<...>;
    lastName: MySqlColumn<...>;
}, ... 6 more ..., {
    ...;
}>

When it should be:
{
    id: number;
    playerId: number | null;
    firstName: string;
    lastName: string;
}[]


How do I type this correctly?
Was this page helpful?