© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•2y ago•
3 replies
Eli

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
}
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 ..., {
    ...;
}>
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;
}[]
{
    id: number;
    playerId: number | null;
    firstName: string;
    lastName: string;
}[]


How do I type this correctly?
Drizzle TeamJoin
The official Discord for all Drizzle related projects, such as Drizzle ORM, Drizzle Kit, Drizzle Studio and more!
11,879Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Typed results from QueryBuilder
Drizzle TeamDTDrizzle Team / help
9mo ago
Get type from select object ?
Drizzle TeamDTDrizzle Team / help
2y ago
how to get type bigint return type "number | undefined" in schema ?
Drizzle TeamDTDrizzle Team / help
8mo ago