从 Schema 推导类型
字段、主键、查询条件、Yukari 数据行和 JSON 输出均来自同一份 Model 定义。
import { Toshihiko, Type } from 'toshihiko';
const database = new Toshihiko('mysql', {
database: 'app',
host: '127.0.0.1',
password: 'secret',
username: 'root',
});
const User = database.define('users', [
{
name: 'id',
column: 'user_id',
type: Type.Integer,
primaryKey: true,
autoIncrement: true,
},
{ name: 'name', type: Type.String },
], {
methods: {
findByName(name: string) {
return this.where({ name }).findOne();
},
},
});
const user = User.build({ name: 'Alice' });
await user.insert();
const found = await User.findByName('Alice');Schema 同时承担运行时映射和 TypeScript 类型输入。字段值、主键、查询条件、数据行属性以及自定义 Model 方法都不需要额外维护一份接口。
项目状态
Toshihiko v2 仍在开发中。当前软件包属于预发布版本,需要 Node.js 22 或更高版本。