跳到主要内容

rxdb-adapter-pglite

RxDB 适配器,使用 PGlite 在浏览器中运行 PostgreSQL。

功能特性

  • 本地优先: 在浏览器中通过 WebAssembly 运行完整 PostgreSQL
  • 零服务器: 无需后端服务器,数据存储在本地
  • PostgreSQL 兼容: 支持标准 PostgreSQL 语法和功能
  • 响应式: 数据变化自动触发更新

安装

npm install @aiao/rxdb-adapter-pglite
# 或
pnpm add @aiao/rxdb-adapter-pglite

使用

import { createRxdb } from '@aiao/rxdb';
import { createPgliteAdapter } from '@aiao/rxdb-adapter-pglite';

const db = await createRxdb({
adapter: createPgliteAdapter()
});

Enumerations

EnumerationDescription
PGliteChangeTypePGlite 变更事件类型枚举 对应 PostgreSQL 的 TG_OP (trigger operation)

Classes

ClassDescription
PGliteClient事件调度器 提供类型安全的事件添加、移除和分发功能
PostgreSQLDialectPostgreSQL 方言实现
RxDBAdapterPGliteRxDB PGlite 适配器
RxdbAdapterPGliteErrorPGlite 适配器错误类

Interfaces

InterfaceDescription
IPGliteClient-
ISqlDialectSQL 方言接口 定义数据库特定的 SQL 语法转换方法
PGliteChangeEventPGlite 变更事件 触发器通过 NOTIFY 发送的数据库变更事件
PGliteClientEventsPGlite 客户端事件映射
PGliteClientOptionsPGlite 客户端配置选项 扩展自 PGlite 原生配置
PGliteNotifyPayloadPGlite 通知 payload 结构 从 NOTIFY 消息中解析的数据
PgliteTableColumnPGlite 数据库表列信息接口 包含 PostgreSQL information_schema.columns 视图的所有字段

Type Aliases

Type AliasDescription
ForeignKey外键约束信息类型 描述表之间的外键关系

Variables

VariableDescription
ADAPTER_NAMEPGlite 适配器名称常量
pgDialect默认导出 PostgreSQL 方言实例

Functions

FunctionDescription
create_tables_sql生成多张表的创建 SQL
generate_trigger_sql生成 PostgreSQL 触发器 SQL
generateNotifyFunctionSQL生成 NOTIFY 触发器函数 SQL
generateNotifyInfrastructureSQL生成完整的 NOTIFY 基础设施 SQL
generateNotifyTriggerSQL为指定表创建 NOTIFY 触发器
getEntityObjectFromResult从 PGlite 结果行获取实体对象数据 PGlite 返回行作为对象,主要用于类型转换
getSqlValue-
getSqlWithParams将 PostgreSQL 参数占位符($1、$2 等)替换为实际值 用于批量操作中无法使用参数化查询的情况
getTableColumnIndexName获取表列索引名称
getTableName-
getTableNameByMetadata-
normalizeCreateEntity规范化创建实体的字段(过滤可写字段)
normalizeEntity规范化实体数据,过滤掉只读字段
remove_all_triggers_sql生成删除所有实体触发器的 SQL
remove_trigger_sql生成删除单个实体触发器的 SQL
removeNotifyTriggerSQL移除表的 NOTIFY 触发器
rxDBColumnTypeToPGliteType将 RxDB 属性类型转换为 PGlite 数据类型
rxDBColumnTypeToPGliteTypeIndexName获取属性的索引操作符 http://www.postgres.cn/docs/current/indexes-opclass.html
transformEntityValuePGliteToJs将实体对象中的所有值从 PGlite 格式转换为 JS 类型 主要用于 RxDBChange 表的 patch/inversePatch 字段
transformEntityValueToSql将实体值转换为 SQL 兼容格式
transformValueJsToPGlite将 JavaScript 值转换为 PostgreSQL 兼容的值
transformValuePGliteToJs将 PGlite 存储的值转换为 JS 类型 PostgreSQL 的 JSONB 字段已经是对象,不需要 JSON.parse