diff --git a/ext/node/polyfills/sqlite.ts b/ext/node/polyfills/sqlite.ts index 7a4e92f8bb4a31..b3ea2b157f6d82 100644 --- a/ext/node/polyfills/sqlite.ts +++ b/ext/node/polyfills/sqlite.ts @@ -2,8 +2,21 @@ import { DatabaseSync } from "ext:core/ops"; +export const constants = { + SQLITE_CHANGESET_OMIT: 0, + SQLITE_CHANGESET_REPLACE: 1, + SQLITE_CHANGESET_ABORT: 2, + + SQLITE_CHANGESET_DATA: 1, + SQLITE_CHANGESET_NOTFOUND: 2, + SQLITE_CHANGESET_CONFLICT: 3, + SQLITE_CHANGESET_CONSTRAINT: 4, + SQLITE_CHANGESET_FOREIGN_KEY: 5, +}; + export { DatabaseSync }; export default { + constants, DatabaseSync, }; diff --git a/tests/unit_node/sqlite_test.ts b/tests/unit_node/sqlite_test.ts index fcf8292e029487..6b7f1aef54d1a7 100644 --- a/tests/unit_node/sqlite_test.ts +++ b/tests/unit_node/sqlite_test.ts @@ -1,5 +1,5 @@ // Copyright 2018-2025 the Deno authors. MIT license. -import { DatabaseSync } from "node:sqlite"; +import sqlite, { DatabaseSync } from "node:sqlite"; import { assert, assertEquals, assertThrows } from "@std/assert"; const tempDir = Deno.makeTempDirSync(); @@ -173,9 +173,9 @@ Deno.test("[node/sqlite] applyChangeset across databases", () => { const changeset = session.changeset(); targetDb.applyChangeset(changeset, { - filter(e) { - return e === "data"; - }, + filter: (e) => e === "data", + // @ts-ignore: types are not up to date + onConflict: () => sqlite.constants.SQLITE_CHANGESET_ABORT, }); const stmt = targetDb.prepare("SELECT * FROM data");