{"id":15509866,"url":"https://github.com/atorber/vika-orm","last_synced_at":"2026-03-14T07:04:15.717Z","repository":{"id":198879558,"uuid":"701726654","full_name":"atorber/vika-orm","owner":"atorber","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-20T05:39:26.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-19T22:29:31.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atorber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-07T11:41:43.000Z","updated_at":"2024-05-20T05:39:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"8730c1a7-88fe-41e7-be44-6a98ad60a4fc","html_url":"https://github.com/atorber/vika-orm","commit_stats":null,"previous_names":["atorber/vika-orm"],"tags_count":0,"template":false,"template_full_name":"atorber/http2mqtt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fvika-orm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fvika-orm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fvika-orm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atorber%2Fvika-orm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atorber","download_url":"https://codeload.github.com/atorber/vika-orm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242980782,"owners_count":20216285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T09:44:35.165Z","updated_at":"2025-12-24T07:47:56.873Z","avatar_url":"https://github.com/atorber.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vika-orm\n\n## 简介\n\n维格表vika的ts ORM\n\n## 快速开始\n\n```shell\nnpm i\nnpm run start\n```\n\n## 使用\n\n1. 安装依赖\n\n```shell\nnpm i vika-orm\n```\n\n1. 示例代码\n\n```ts\nimport { log } from 'console'\nimport { BaseEntity, VikaOptions, MappingOptions, wait } from 'vika-orm' // 导入 BaseEntity, VikaOptions, 和 MappingOptions 类型/类\nimport { v4 as uuidv4 } from 'uuid'\n\nasync function main () {\n  const vikaOptions: VikaOptions = {  // 定义 Vika API 的选项\n    apiKey: '替换为你自己的vika token',  // vika API 密钥\n    baseId: '替换为你自己的表id',  // 设置 base ID\n  }\n\n  const mappingOptions: MappingOptions = {  // 定义字段映射选项\n    fieldMapping: {  // 字段映射\n      email: 'Email',\n      id: 'ID',\n      name: 'Name',\n    },\n    tableName: 'users',  // 表名\n  }\n\n  /**\n       * 用户实体\n       */\n  class User extends BaseEntity {  // 用户类继承 BaseEntity\n\n    name?: string  // 定义名字属性，可选\n    email?: string  // 定义电子邮件属性，可选\n    id?:string\n\n    // protected static override recordId: string = ''  // 定义记录ID，初始为空字符串\n\n    protected static override mappingOptions: MappingOptions = mappingOptions  // 设置映射选项为上面定义的 mappingOptions\n\n    protected static override getMappingOptions (): MappingOptions {  // 获取映射选项的方法\n      return this.mappingOptions  // 返回当前类的映射选项\n    }\n\n    static override setMappingOptions (options: MappingOptions) {  // 设置映射选项的方法\n      this.mappingOptions = options  // 更新当前类的映射选项\n    }\n\n  }\n\n  User.setVikaOptions(vikaOptions)  // 设置 Vika API 选项\n\n  // 使用示例\n\n  // 增\n  const newUser1 = new User()  // 创建一个新的用户实例\n  newUser1.name = 'Bob'  // 设置用户名为 Bob\n  newUser1.email = 'bob@example.com'  // 设置用户电子邮件为 bob@example.com\n  newUser1.id = uuidv4()\n  const res = await newUser1.save()  // 保存用户实例\n  log('保存newUser1:', JSON.stringify(res))  // 输出新用户的信息\n  await wait(500)  // 等待 500 毫秒\n\n  // 增\n  const newUser2 = await User.create\u003cUser\u003e({  // 创建一个新的用户\n    email: 'test@example.com',  // 用户电子邮件为 test@example.com\n    id:uuidv4(),\n    name: 'Test',  // 用户名为 Test\n  })\n\n  log('保存newUser2:', JSON.stringify(newUser2))  // 输出新用户的信息\n  await wait(500)  // 等待 500 毫秒\n\n  // 改\n  const updateRes = await User.update(newUser2.recordId, { email: 'newalice@example.com' } as Partial\u003cUser\u003e)  // 更新新用户的电子邮件\n  log('更新newUser2:', JSON.stringify(updateRes))  // 输出更新后的新用户信息\n  await wait(500)  // 等待 500 毫秒\n\n  // 查\n  const queryRes = await User.findById(newUser2.recordId)\n  log('查询findById:', JSON.stringify(queryRes))  // 输出更新后的新用户信息\n  await wait(500)  // 等待 500 毫秒\n\n  const query2Res = await User.findByField('email', 'bob@example.com')\n  log('查询findByField:', JSON.stringify(query2Res))  // 输出更新后的新用户信息\n  await wait(500)  // 等待 500 毫秒\n\n  // 删\n  const deleteRes = await User.delete(newUser2.recordId)  // 删除新用户\n  log('删除newUser2:', JSON.stringify(deleteRes))  // 输出更新后的新用户信息\n  await wait(500)  // 等待 500 毫秒\n\n  // 查\n  const users = await User.findAll()  // 查找所有用户（当前被注释掉）\n  log('查询users:', JSON.stringify(users))  // 输出新用户的信息\n  await wait(500)  // 等待 500 毫秒\n}\n\n(async function () {\n  await main()\n})().catch(error =\u003e {\n  console.error(error)\n})\n\n```\n\n## 历史版本\n\n### v0.1.1 (2023-10-7)\n\n1. 初始化创建代码库及npm包\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatorber%2Fvika-orm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatorber%2Fvika-orm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatorber%2Fvika-orm/lists"}