O
OOR
文档
OOR
文档
简介
Getting Started
安装
快速开始
Query Flow
Core Concepts
Suffix
Schema
Condition Tree
Adapters
SQLite
PostgreSQL / MySQL
Elasticsearch
Integrations
Drizzle Integration
ES Client

#OOR 简介

oor 是一个小型 query core。

它负责:

  • suffix 风格查询输入
  • query -> condition tree
  • schema 校验
  • SQL / ES 语法生成
  • Drizzle 单表插件

#什么时候用哪个入口

入口适合场景说明
oor只想处理 suffix / condition / schema / date根入口只导出抽象核心
oor/sqlite生成 SQLite 风格 SQL只生成语法,不连接数据库
oor/pg生成 PostgreSQL 风格 SQL使用 $1 这类占位符
oor/mysql生成 MySQL 风格 SQL使用反引号和 ? 占位符
oor/es生成 Elasticsearch query/body支持聚合 helpers
oor/drizzle单表查询、分页、条件写入建议优先用于日常 Drizzle 表操作

#一条主线

TypeScript
import { makeNode, schema } from 'oor'
import { querySql } from 'oor/sqlite'
import { z } from 'zod'

const query = schema({
  status: z.string(),
  createdAt: z.date()
})

const input = query.parse({
  statusIn: ['active', 'pending'],
  createdAtDay: '2026-04-08'
})

const node = makeNode(input)

const sql = querySql(input, undefined, {
  map: {
    status: { column: 'status', type: 'string' },
    createdAt: { column: 'created_at', type: 'date' }
  }
})

同一份 input,可以继续交给:

  • makeNode
  • querySql / whereSql
  • esBody
  • withTable

#结构

  • core: condition / suffix / schema / sql / type
  • adapter: pg / mysql / sqlite / es
  • utils: date.ts
  • drizzle: Drizzle 插件层
  • typeorm: 预留位

#下一步

  • 安装
  • 快速开始
  • Query Flow
  • Drizzle 插件