forge-sql-orm
Version:
Drizzle ORM integration for Forge-SQL in Atlassian Forge applications.
43 lines • 2.23 kB
TypeScript
import { UpdateQueryResponse } from "@forge/sql";
import { ForgeSqlOrmOptions, SchemaSqlForgeSql } from "./ForgeSQLQueryBuilder";
import { AnyMySqlSelectQueryBuilder, MySqlSelectDynamic } from "drizzle-orm/mysql-core/query-builders/select.types";
/**
* Class implementing SQL select operations for ForgeSQL ORM.
* Provides methods for executing queries and mapping results to entity types.
*/
export declare class ForgeSQLSelectOperations implements SchemaSqlForgeSql {
private readonly options;
/**
* Creates a new instance of ForgeSQLSelectOperations.
* @param {ForgeSqlOrmOptions} options - Configuration options for the ORM
*/
constructor(options: ForgeSqlOrmOptions);
/**
* Executes a Drizzle query and returns a single result.
* Throws an error if more than one record is returned.
*
* @template T - The type of the query builder
* @param {T} query - The Drizzle query to execute
* @returns {Promise<Awaited<T> extends Array<any> ? Awaited<T>[number] | undefined : Awaited<T> | undefined>} A single result object or undefined
* @throws {Error} If more than one record is returned
*/
executeQueryOnlyOne<T extends MySqlSelectDynamic<AnyMySqlSelectQueryBuilder>>(query: T): Promise<Awaited<T> extends Array<any> ? Awaited<T>[number] | undefined : Awaited<T> | undefined>;
/**
* Executes a raw SQL query and returns the results.
* Logs the query if logging is enabled.
*
* @template T - The type of the result objects
* @param {string} query - The raw SQL query to execute
* @param {SqlParameters[]} [params] - Optional SQL parameters
* @returns {Promise<T[]>} A list of results as objects
*/
executeRawSQL<T extends object | unknown>(query: string, params?: unknown[]): Promise<T[]>;
/**
* Executes a raw SQL update query.
* @param {string} query - The raw SQL update query
* @param {SqlParameters[]} [params] - Optional SQL parameters
* @returns {Promise<UpdateQueryResponse>} The update response containing affected rows
*/
executeRawUpdateSQL(query: string, params?: unknown[]): Promise<UpdateQueryResponse>;
}
//# sourceMappingURL=ForgeSQLSelectOperations.d.ts.map