rquickjs_extra_sqlite/
lib.rs

1use rquickjs::{
2    function::{Async, Func},
3    module::{Declarations, Exports, ModuleDef},
4    Class, Ctx, Result,
5};
6use rquickjs_extra_utils::module::export_default;
7
8pub use self::argument::Argument;
9pub use self::database::Database;
10pub use self::open::{open, OpenOptions};
11pub use self::statement::Statement;
12pub use self::value::Value;
13
14mod argument;
15mod database;
16mod open;
17mod statement;
18mod value;
19
20pub struct SqliteModule;
21
22impl ModuleDef for SqliteModule {
23    fn declare(declare: &Declarations) -> Result<()> {
24        declare.declare(stringify!(Database))?;
25        declare.declare("open")?;
26        declare.declare("default")?;
27
28        Ok(())
29    }
30
31    fn evaluate<'js>(ctx: &Ctx<'js>, exports: &Exports<'js>) -> Result<()> {
32        export_default(ctx, exports, |default| {
33            Class::<Database>::define(default)?;
34
35            default.set("open", Func::from(Async(open::open)))?;
36
37            Ok(())
38        })?;
39        Ok(())
40    }
41}