@basenative/db

中文文档
3.3.0发布于 2026/11/03Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 1868

Query builder with SQLite, PostgreSQL, and Cloudflare D1 adapters

原始使用文档
文档目录7 节
  1. Install
  2. Quick Start
  3. API
  4. Query Builders
  5. Adapters
  6. Migrations
  7. License

@basenative/db

Fluent SQL query builder with SQLite, PostgreSQL, and Cloudflare D1 adapters

Part of the BaseNative ecosystem — a signal-based web runtime over native HTML.

Install

npm install @basenative/db

Optional adapter dependencies (install only what you need):

npm install better-sqlite3   # SQLite
npm install pg               # PostgreSQL

Quick Start

import { select, insert, update, deleteFrom, createSqliteAdapter } from '@basenative/db';

const db = createSqliteAdapter({ filename: './data.db' });

// SELECT
const { sql, params } = select('users')
  .columns('id', 'name', 'email')
  .where('active = ?', true)
  .orderBy('name')
  .limit(20)
  .build();

const users = await db.query(sql, params);

// INSERT
const q = insert('users').values({ name: 'Alice', email: '[email protected]' }).build();
await db.run(q.sql, q.params);

// UPDATE
const u = update('users').set({ name: 'Alicia' }).where('id = ?', 1).build();
await db.run(u.sql, u.params);

// DELETE
const d = deleteFrom('users').where('id = ?', 1).build();
await db.run(d.sql, d.params);

API

Query Builders

All builders produce { sql, params } via .build(). All values go through ? placeholders — no string interpolation.

  • select(table) — Fluent SELECT builder.
    • .columns(...cols) — Columns to select (default *).
    • .where(condition, ...params) — Adds a WHERE clause (chained with AND).
    • .join(table, on) / .leftJoin(table, on) — Adds a JOIN clause.
    • .orderBy(column, direction?) — Adds ORDER BY.
    • .limit(n) / .offset(n) — Adds LIMIT/OFFSET.
  • insert(table) — Fluent INSERT builder.
    • .values(object) — Sets column/value pairs.
  • update(table) — Fluent UPDATE builder.
    • .set(object) — Sets column/value pairs.
    • .where(condition, ...params) — Adds a WHERE clause.
  • deleteFrom(table) — Fluent DELETE builder.
    • .where(condition, ...params) — Adds a WHERE clause.
  • raw(sql, params?) — Escape hatch for arbitrary SQL with explicit params.

Adapters

  • createSqliteAdapter(options) — SQLite adapter using better-sqlite3. Options: filename.
  • createPostgresAdapter(options) — PostgreSQL adapter using pg. Options: connection config.
  • createD1Adapter(binding) — Cloudflare D1 adapter. Pass the D1 binding from env.DB.
  • validateAdapter(adapter) — Validates that an adapter implements the required interface.

Migrations

  • migrate(db, options) — Runs pending migrations.
  • rollback(db, options) — Rolls back the last applied migration batch.

License

Apache-2.0

版本与发布记录

@basenative/db 共发布 14 个版本,首次发布于 2026/03/20;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.3.0latest2026/11/035 天前
3.2.02026/11/035 天前
3.1.02026/11/017 天前
3.0.02026/10/317 天前
2.4.02026/10/2613 天前
2.3.22026/10/2217 天前

关于 @basenative/db 的常见问题

@basenative/db 是什么?

Query builder with SQLite, PostgreSQL, and Cloudflare D1 adapters

如何安装 @basenative/db?

在项目目录运行 npm install @basenative/db,或使用 pnpm add / yarn add / bun add。

@basenative/db 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@basenative/db 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@basenative/db 可以商用吗?

@basenative/db 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@basenative/db 的下载量有多少?

根据 npm 官方下载统计,@basenative/db 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,868 次,日均约 62 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@basenative/db 还在维护吗?

最新版本 3.3.0 发布于 2026/11/03(5 天前);至今共发布 14 个版本,其中过去 12 个月发布了 14 个;首次发布于 2026/03/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。