Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/atorber/vika-orm
https://github.com/atorber/vika-orm
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/atorber/vika-orm
- Owner: atorber
- License: apache-2.0
- Created: 2023-10-07T11:41:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-20T05:39:26.000Z (8 months ago)
- Last Synced: 2024-10-03T09:44:42.021Z (3 months ago)
- Language: TypeScript
- Size: 64.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vika-orm
## 简介
维格表vika的ts ORM
## 快速开始
```shell
npm i
npm run start
```## 使用
1. 安装依赖
```shell
npm i vika-orm
```1. 示例代码
```ts
import { log } from 'console'
import { BaseEntity, VikaOptions, MappingOptions, wait } from 'vika-orm' // 导入 BaseEntity, VikaOptions, 和 MappingOptions 类型/类
import { v4 as uuidv4 } from 'uuid'async function main () {
const vikaOptions: VikaOptions = { // 定义 Vika API 的选项
apiKey: '替换为你自己的vika token', // vika API 密钥
baseId: '替换为你自己的表id', // 设置 base ID
}const mappingOptions: MappingOptions = { // 定义字段映射选项
fieldMapping: { // 字段映射
email: 'Email',
id: 'ID',
name: 'Name',
},
tableName: 'users', // 表名
}/**
* 用户实体
*/
class User extends BaseEntity { // 用户类继承 BaseEntityname?: string // 定义名字属性,可选
email?: string // 定义电子邮件属性,可选
id?:string// protected static override recordId: string = '' // 定义记录ID,初始为空字符串
protected static override mappingOptions: MappingOptions = mappingOptions // 设置映射选项为上面定义的 mappingOptions
protected static override getMappingOptions (): MappingOptions { // 获取映射选项的方法
return this.mappingOptions // 返回当前类的映射选项
}static override setMappingOptions (options: MappingOptions) { // 设置映射选项的方法
this.mappingOptions = options // 更新当前类的映射选项
}}
User.setVikaOptions(vikaOptions) // 设置 Vika API 选项
// 使用示例
// 增
const newUser1 = new User() // 创建一个新的用户实例
newUser1.name = 'Bob' // 设置用户名为 Bob
newUser1.email = '[email protected]' // 设置用户电子邮件为 [email protected]
newUser1.id = uuidv4()
const res = await newUser1.save() // 保存用户实例
log('保存newUser1:', JSON.stringify(res)) // 输出新用户的信息
await wait(500) // 等待 500 毫秒// 增
const newUser2 = await User.create({ // 创建一个新的用户
email: '[email protected]', // 用户电子邮件为 [email protected]
id:uuidv4(),
name: 'Test', // 用户名为 Test
})log('保存newUser2:', JSON.stringify(newUser2)) // 输出新用户的信息
await wait(500) // 等待 500 毫秒// 改
const updateRes = await User.update(newUser2.recordId, { email: '[email protected]' } as Partial) // 更新新用户的电子邮件
log('更新newUser2:', JSON.stringify(updateRes)) // 输出更新后的新用户信息
await wait(500) // 等待 500 毫秒// 查
const queryRes = await User.findById(newUser2.recordId)
log('查询findById:', JSON.stringify(queryRes)) // 输出更新后的新用户信息
await wait(500) // 等待 500 毫秒const query2Res = await User.findByField('email', '[email protected]')
log('查询findByField:', JSON.stringify(query2Res)) // 输出更新后的新用户信息
await wait(500) // 等待 500 毫秒// 删
const deleteRes = await User.delete(newUser2.recordId) // 删除新用户
log('删除newUser2:', JSON.stringify(deleteRes)) // 输出更新后的新用户信息
await wait(500) // 等待 500 毫秒// 查
const users = await User.findAll() // 查找所有用户(当前被注释掉)
log('查询users:', JSON.stringify(users)) // 输出新用户的信息
await wait(500) // 等待 500 毫秒
}(async function () {
await main()
})().catch(error => {
console.error(error)
})```
## 历史版本
### v0.1.1 (2023-10-7)
1. 初始化创建代码库及npm包