Waits for the database connection to be established
method
SQL.connect
Referenced types
namespace SQL
class MySQLError
- static stackTraceLimit: number
The
Error.stackTraceLimit
property specifies the number of stack frames collected by a stack trace (whether generated bynew Error().stack
orError.captureStackTrace(obj)
).The default value is
10
but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
- targetObject: object,constructorOpt?: Function): void;
Create .stack property on a target object
class PostgresError
- static stackTraceLimit: number
The
Error.stackTraceLimit
property specifies the number of stack frames collected by a stack trace (whether generated bynew Error().stack
orError.captureStackTrace(obj)
).The default value is
10
but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
- targetObject: object,constructorOpt?: Function): void;
Create .stack property on a target object
class SQLError
- static stackTraceLimit: number
The
Error.stackTraceLimit
property specifies the number of stack frames collected by a stack trace (whether generated bynew Error().stack
orError.captureStackTrace(obj)
).The default value is
10
but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
- targetObject: object,constructorOpt?: Function): void;
Create .stack property on a target object
class SQLiteError
- static stackTraceLimit: number
The
Error.stackTraceLimit
property specifies the number of stack frames collected by a stack trace (whether generated bynew Error().stack
orError.captureStackTrace(obj)
).The default value is
10
but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
- targetObject: object,constructorOpt?: Function): void;
Create .stack property on a target object
interface PostgresOrMySQLOptions
- bigint?: boolean
By default values outside i32 range are returned as strings. If this is true, values outside i32 range are returned as BigInts.
interface Query<T>
Represents a SQL query that can be executed, with additional control methods Extends Promise to allow for async/await usage
- onrejected?: null | (reason: any) => TResult | PromiseLike<TResult>): Promise<T | TResult>;
Attaches a callback for only the rejection of the Promise.
@param onrejectedThe callback to execute when the Promise is rejected.
@returnsA Promise for the completion of the callback.
- onfinally?: null | () => void): Promise<T>;
Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The resolved value cannot be modified from the callback.
@param onfinallyThe callback to execute when the Promise is settled (fulfilled or rejected).
@returnsA Promise for the completion of the callback.
- onfulfilled?: null | (value: T) => TResult1 | PromiseLike<TResult1>,onrejected?: null | (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
Attaches callbacks for the resolution and/or rejection of the Promise.
@param onfulfilledThe callback to execute when the Promise is resolved.
@param onrejectedThe callback to execute when the Promise is rejected.
@returnsA Promise for the completion of which ever callback is executed.
interface SQLiteOptions
Options for Database
- readonly?: boolean
Open the database as read-only (no write operations, no create).
Equivalent to constants.SQLITE_OPEN_READONLY
- safeIntegers?: boolean
When set to
true
, integers are returned asbigint
types.When set to
false
, integers are returned asnumber
types and truncated to 52 bits. - strict?: boolean
When set to
false
orundefined
:- Queries missing bound parameters will NOT throw an error
- Bound named parameters in JavaScript need to exactly match the SQL query.
const db = new Database(":memory:", { strict: false }); db.run("INSERT INTO foo (name) VALUES ($name)", { $name: "foo" });
When set to
true
:- Queries missing bound parameters will throw an error
- Bound named parameters in JavaScript no longer need to be
$
,:
, or@
. The SQL query will remain prefixed.
- type AwaitPromisesArray<T extends PromiseLike<any>[]> = { [K in keyof T]: Awaited<T[K]> }
- type ContextCallback<T, SQL> = (sql: SQL) => Bun.MaybePromise<T>
- type ContextCallbackResult<T> = T extends PromiseLike<any>[] ? AwaitPromisesArray<T> : Awaited<T>
- type Options = SQLiteOptions | PostgresOrMySQLOptions
Configuration options for SQL client connection and behavior
const config: Bun.SQL.Options = { host: 'localhost', port: 5432, user: 'dbuser', password: 'secretpass', database: 'myapp', idleTimeout: 30, max: 20, onconnect: (client) => { console.log('Connected to database'); } };
- type SavepointContextCallback<T> = ContextCallback<T, SavepointSQL>
Callback function type for savepoint contexts
- type TransactionContextCallback<T> = ContextCallback<T, TransactionSQL>
Callback function type for transaction contexts