UNPKG

forge-sql-orm

Version:

Drizzle ORM integration for Atlassian @forge/sql. Provides a custom driver, schema migration, two levels of caching (local and global via @forge/kvs), optimistic locking, and query analysis.

44 lines 2.27 kB
import { UpdateQueryResponse } from "@forge/sql"; import { ForgeSqlOrmOptions, SchemaSqlForgeSql } from "./ForgeSQLQueryBuilder"; import { AnyMySqlSelectQueryBuilder, MySqlSelectDynamic } from "drizzle-orm/mysql-core/query-builders/select.types"; import { SqlParameters } from "@forge/sql/out/sql-statement"; /** * 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>(query: string, params?: SqlParameters[]): 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