File
Blob: src/node/sqlite.ts
| 1 | // Copyright (c) 2026 Cloudflare, Inc. |
| 2 | // Licensed under the Apache 2.0 license found in the LICENSE file or at: |
| 3 | // https://opensource.org/licenses/Apache-2.0 |
| 4 | |
| 5 | import { default as sqliteUtil } from 'node-internal:sqlite'; |
| 6 | import type sqlite from 'node:sqlite'; |
| 7 | |
| 8 | const { |
| 9 | DatabaseSync, |
| 10 | StatementSync, |
| 11 | SQLITE_CHANGESET_OMIT, |
| 12 | SQLITE_CHANGESET_REPLACE, |
| 13 | SQLITE_CHANGESET_ABORT, |
| 14 | SQLITE_CHANGESET_DATA, |
| 15 | SQLITE_CHANGESET_NOTFOUND, |
| 16 | SQLITE_CHANGESET_CONFLICT, |
| 17 | SQLITE_CHANGESET_CONSTRAINT, |
| 18 | SQLITE_CHANGESET_FOREIGN_KEY, |
| 19 | } = sqliteUtil; |
| 20 | |
| 21 | export const backup = sqliteUtil.backup.bind(sqliteUtil); |
| 22 | |
| 23 | // SQLite authorization action codes (from sqlite3.h) |
| 24 | const SQLITE_OK = 0; |
| 25 | const SQLITE_DENY = 1; |
| 26 | const SQLITE_IGNORE = 2; |
| 27 | const SQLITE_CREATE_INDEX = 1; |
| 28 | const SQLITE_CREATE_TABLE = 2; |
| 29 | const SQLITE_CREATE_TEMP_INDEX = 3; |
| 30 | const SQLITE_CREATE_TEMP_TABLE = 4; |
| 31 | const SQLITE_CREATE_TEMP_TRIGGER = 5; |
| 32 | const SQLITE_CREATE_TEMP_VIEW = 6; |
| 33 | const SQLITE_CREATE_TRIGGER = 7; |
| 34 | const SQLITE_CREATE_VIEW = 8; |
| 35 | const SQLITE_DELETE = 9; |
| 36 | const SQLITE_DROP_INDEX = 10; |
| 37 | const SQLITE_DROP_TABLE = 11; |
| 38 | const SQLITE_DROP_TEMP_INDEX = 12; |
| 39 | const SQLITE_DROP_TEMP_TABLE = 13; |
| 40 | const SQLITE_DROP_TEMP_TRIGGER = 14; |
| 41 | const SQLITE_DROP_TEMP_VIEW = 15; |
| 42 | const SQLITE_DROP_TRIGGER = 16; |
| 43 | const SQLITE_DROP_VIEW = 17; |
| 44 | const SQLITE_INSERT = 18; |
| 45 | const SQLITE_PRAGMA = 19; |
| 46 | const SQLITE_READ = 20; |
| 47 | const SQLITE_SELECT = 21; |
| 48 | const SQLITE_TRANSACTION = 22; |
| 49 | const SQLITE_UPDATE = 23; |
| 50 | const SQLITE_ATTACH = 24; |
| 51 | const SQLITE_DETACH = 25; |
| 52 | const SQLITE_ALTER_TABLE = 26; |
| 53 | const SQLITE_REINDEX = 27; |
| 54 | const SQLITE_ANALYZE = 28; |
| 55 | const SQLITE_CREATE_VTABLE = 29; |
| 56 | const SQLITE_DROP_VTABLE = 30; |
| 57 | const SQLITE_FUNCTION = 31; |
| 58 | const SQLITE_SAVEPOINT = 32; |
| 59 | const SQLITE_COPY = 0; |
| 60 | const SQLITE_RECURSIVE = 33; |
| 61 | |
| 62 | export const constants: typeof sqlite.constants = { |
| 63 | SQLITE_CHANGESET_OMIT, |
| 64 | SQLITE_CHANGESET_REPLACE, |
| 65 | SQLITE_CHANGESET_ABORT, |
| 66 | SQLITE_CHANGESET_DATA, |
| 67 | SQLITE_CHANGESET_NOTFOUND, |
| 68 | SQLITE_CHANGESET_CONFLICT, |
| 69 | // @ts-expect-error TS2561 This is missing from node.js types |
| 70 | SQLITE_CHANGESET_CONSTRAINT, |
| 71 | SQLITE_CHANGESET_FOREIGN_KEY, |
| 72 | // Authorization action codes |
| 73 | SQLITE_OK, |
| 74 | SQLITE_DENY, |
| 75 | SQLITE_IGNORE, |
| 76 | SQLITE_CREATE_INDEX, |
| 77 | SQLITE_CREATE_TABLE, |
| 78 | SQLITE_CREATE_TEMP_INDEX, |
| 79 | SQLITE_CREATE_TEMP_TABLE, |
| 80 | SQLITE_CREATE_TEMP_TRIGGER, |
| 81 | SQLITE_CREATE_TEMP_VIEW, |
| 82 | SQLITE_CREATE_TRIGGER, |
| 83 | SQLITE_CREATE_VIEW, |
| 84 | SQLITE_DELETE, |
| 85 | SQLITE_DROP_INDEX, |
| 86 | SQLITE_DROP_TABLE, |
| 87 | SQLITE_DROP_TEMP_INDEX, |
| 88 | SQLITE_DROP_TEMP_TABLE, |
| 89 | SQLITE_DROP_TEMP_TRIGGER, |
| 90 | SQLITE_DROP_TEMP_VIEW, |
| 91 | SQLITE_DROP_TRIGGER, |
| 92 | SQLITE_DROP_VIEW, |
| 93 | SQLITE_INSERT, |
| 94 | SQLITE_PRAGMA, |
| 95 | SQLITE_READ, |
| 96 | SQLITE_SELECT, |
| 97 | SQLITE_TRANSACTION, |
| 98 | SQLITE_UPDATE, |
| 99 | SQLITE_ATTACH, |
| 100 | SQLITE_DETACH, |
| 101 | SQLITE_ALTER_TABLE, |
| 102 | SQLITE_REINDEX, |
| 103 | SQLITE_ANALYZE, |
| 104 | SQLITE_CREATE_VTABLE, |
| 105 | SQLITE_DROP_VTABLE, |
| 106 | SQLITE_FUNCTION, |
| 107 | SQLITE_SAVEPOINT, |
| 108 | SQLITE_COPY, |
| 109 | SQLITE_RECURSIVE, |
| 110 | }; |
| 111 | |
| 112 | export { DatabaseSync, StatementSync }; |
| 113 | |
| 114 | export default { |
| 115 | DatabaseSync, |
| 116 | StatementSync, |
| 117 | constants, |
| 118 | backup, |
| 119 | } satisfies typeof sqlite; |