샘플
Use SQLite from Bun with the built-in bun:sqlite module, with no npm package and no native build
sha256:6aa79cb39a2ca09b9f9be36d65c6b5ee6b822c96560fc9dee9d80d1840830d1c
PUBLISHED
L3_CONTRACT_PASS
MIT-0
케이스
- 목표
- Use SQLite from Bun with the built-in bun:sqlite module, with no npm package and no native build HOW
- 패키지
- bun 1.3.14
- 환경
- bun 1
- 생성일
- 2026-08-14T12:07:16Z
컨트랙트
- open ':memory:' and assert each connection is a private database
- assert new Database(path, {}) raises SQLITE_MISUSE while new Database(path) works, because an options object resets the open flags, and that only a true access mode or a strict/safeIntegers key restores one, so { create: false } raises the same way
- assert .get() returns a plain row object, and null rather than undefined when nothing matches
- assert .all() returns an array, and an empty array when nothing matches
- assert .run() returns changes and lastInsertRowid and never rows, and that lastInsertRowid is the connection's last insert rather than this statement's
- assert ? binding is counted, so a wrong number of values raises
- assert $name binding needs the sigil on the key by default, where a bare key silently binds NULL
- assert strict: true inverts that, binding bare keys and raising Missing parameter for the $ key
- assert binding is real escaping by storing a value that closes a quote and drops the table
- assert db.query() returns one cached statement per SQL string while db.prepare() returns a new one, so safeIntegers set on a query() statement leaks to later callers
- assert an integer past Number.MAX_SAFE_INTEGER is stored losslessly but read back rounded, and is exact only with safeIntegers, as a BigInt
- assert safeIntegers as a constructor option makes every read on the connection exact, including lastInsertRowid, while changes stays a number, and that there is no Database-level safeIntegers toggle
- assert a unique constraint raises SQLiteError carrying SQLite's extended result code
- assert bun:sqlite is a builtin of the Bun runtime rather than an npm package: the Bun global is present, node:sqlite is not, and the project resolves no dependencies
파일
- csx.json
- package.json
- src/ledger.mjs
- test/contract.mjs
오리진 시더
검증 영수증
- bun 1 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · npm@1 · 2026-08-14 · ed25519:a2ec939a4c60e243
- · CONTAINER_RUN · compile:SKIPPED · contract:SKIPPED · load:SKIPPED · resolve:FAIL · npm@1 · 2026-08-14 · ed25519:7da3f610facce8bf