diff --git a/Cargo.lock b/Cargo.lock index a7fcca6a..6f935bf7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1611,7 +1611,7 @@ dependencies = [ [[package]] name = "spin-js-cli" -version = "0.5.0" +version = "0.5.1" dependencies = [ "anyhow", "binaryen", @@ -1622,7 +1622,7 @@ dependencies = [ [[package]] name = "spin-js-engine" -version = "0.5.0" +version = "0.5.1" dependencies = [ "anyhow", "bytes", diff --git a/crates/spin-js-engine/src/lib.rs b/crates/spin-js-engine/src/lib.rs index a112e88c..b3862a07 100644 --- a/crates/spin-js-engine/src/lib.rs +++ b/crates/spin-js-engine/src/lib.rs @@ -746,25 +746,25 @@ fn open_sqlite(context: &Context, _this: &Value, args: &[Value]) -> Result context.null_value()?, - sqlite::ValueResult::Integer(i) => context.value_from_i64(i)?, - sqlite::ValueResult::Real(r) => context.value_from_f64(r)?, + sqlite::ValueResult::Integer(i) => context.value_from_i64(*i)?, + sqlite::ValueResult::Real(r) => context.value_from_f64(*r)?, sqlite::ValueResult::Text(s) => context.value_from_str(&s)?, sqlite::ValueResult::Blob(b) => context.array_buffer_value(&b)?, }; - js_row.append_property(js_value)?; + js_row.set_property(columns[index].to_string(),js_value)?; } js_rows.append_property(js_row)?; } + columns.serialize(&mut serializer)?; + let js_columns = serializer.value; + let result = context.object_value()?; result.set_property("columns", js_columns)?; result.set_property("rows", js_rows)?; diff --git a/spin-sdk/src/modules/spinSdk.ts b/spin-sdk/src/modules/spinSdk.ts index 0372b172..a268c053 100644 --- a/spin-sdk/src/modules/spinSdk.ts +++ b/spin-sdk/src/modules/spinSdk.ts @@ -18,11 +18,11 @@ interface KvStore { type SqliteParam = number | string | ArrayBuffer type SqliteValue = null | number | string | ArrayBuffer + +type SqliteRow = Record interface SqliteReturn { columns: string[], - rows: [ - [SqliteValue] - ] + rows: SqliteRow[] } interface SqliteStore {