2025-01-28 19:30:03 +05:30
|
|
|
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
|
|
|
|
|
|
mod database;
|
|
|
|
mod statement;
|
|
|
|
|
|
|
|
pub use database::DatabaseSync;
|
2025-02-02 15:49:39 +05:30
|
|
|
use deno_permissions::PermissionCheckError;
|
2025-01-28 19:30:03 +05:30
|
|
|
pub use statement::StatementSync;
|
|
|
|
|
|
|
|
#[derive(Debug, thiserror::Error, deno_error::JsError)]
|
|
|
|
pub enum SqliteError {
|
2025-02-02 15:49:39 +05:30
|
|
|
#[class(inherit)]
|
|
|
|
#[error(transparent)]
|
|
|
|
Permission(#[from] PermissionCheckError),
|
2025-01-28 19:30:03 +05:30
|
|
|
#[class(generic)]
|
|
|
|
#[error(transparent)]
|
|
|
|
SqliteError(#[from] rusqlite::Error),
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Database is already in use")]
|
|
|
|
InUse,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Failed to step statement")]
|
|
|
|
FailedStep,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Failed to bind parameter. {0}")]
|
|
|
|
FailedBind(&'static str),
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Unknown column type")]
|
|
|
|
UnknownColumnType,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Failed to get SQL")]
|
|
|
|
GetSqlFailed,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Database is already closed")]
|
|
|
|
AlreadyClosed,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Database is already open")]
|
|
|
|
AlreadyOpen,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Failed to prepare statement")]
|
|
|
|
PrepareFailed,
|
|
|
|
#[class(generic)]
|
|
|
|
#[error("Invalid constructor")]
|
|
|
|
InvalidConstructor,
|
2025-02-01 13:19:53 +05:30
|
|
|
#[class(range)]
|
|
|
|
#[error("The value of column {0} is too large to be represented as a JavaScript number: {1}")]
|
|
|
|
NumberTooLarge(i32, i64),
|
2025-01-28 19:30:03 +05:30
|
|
|
}
|