Skip to content

Commit 4a2b8fc

Browse files
authored
fix(ext/node): expose sqlite changeset constants (#27992)
https://nodejs.org/api/sqlite.html#sqliteconstants
1 parent 78fceb4 commit 4a2b8fc

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

ext/node/polyfills/sqlite.ts

+13
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,21 @@
22

33
import { DatabaseSync } from "ext:core/ops";
44

5+
export const constants = {
6+
SQLITE_CHANGESET_OMIT: 0,
7+
SQLITE_CHANGESET_REPLACE: 1,
8+
SQLITE_CHANGESET_ABORT: 2,
9+
10+
SQLITE_CHANGESET_DATA: 1,
11+
SQLITE_CHANGESET_NOTFOUND: 2,
12+
SQLITE_CHANGESET_CONFLICT: 3,
13+
SQLITE_CHANGESET_CONSTRAINT: 4,
14+
SQLITE_CHANGESET_FOREIGN_KEY: 5,
15+
};
16+
517
export { DatabaseSync };
618

719
export default {
20+
constants,
821
DatabaseSync,
922
};

tests/unit_node/sqlite_test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Copyright 2018-2025 the Deno authors. MIT license.
2-
import { DatabaseSync } from "node:sqlite";
2+
import sqlite, { DatabaseSync } from "node:sqlite";
33
import { assert, assertEquals, assertThrows } from "@std/assert";
44

55
const tempDir = Deno.makeTempDirSync();
@@ -173,9 +173,9 @@ Deno.test("[node/sqlite] applyChangeset across databases", () => {
173173

174174
const changeset = session.changeset();
175175
targetDb.applyChangeset(changeset, {
176-
filter(e) {
177-
return e === "data";
178-
},
176+
filter: (e) => e === "data",
177+
// @ts-ignore: types are not up to date
178+
onConflict: () => sqlite.constants.SQLITE_CHANGESET_ABORT,
179179
});
180180

181181
const stmt = targetDb.prepare("SELECT * FROM data");

0 commit comments

Comments
 (0)