WellerQu / entity-framework-of-fe

用于前端的实体框架, 使CRUD更简单

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Entity Framework

** 项目已废弃** 请查看新版本的实现 https://github.com/WellerQu/entity-framework

CI status

基本用法

设: 原始数据模型 OriginModel, 如下所示

const originFoo = { a: 1, b: "2", c: { d: { e: 2 } } }

创建对应的实体数据模型 EntityModel, 并描述关系

import { member, mapping } from 'entity-framework'

class Foo {
  @member()
  a: number = 0

  @member()
  b: string = "b"

  @member('e')
  @mapping("c.d")
  d: number = 0
}

创建上下文, 并在上下文中创建数据集 EntitySet

import { EntityContext } from 'entity-framework'

class Context extends EntityContext {
  fooSet = new EntitySet<Foo>(Foo)
}

序列化: 将实体数据模型(EntityModel)的实例转换成原始数据模型(OriginModel)的实例

const foo = new Foo()
foo.a = 1
foo.b = "b"
foo.d = 2

const ctx = new Context()
const origin = ctx.fooSet.serialize(foo)

expect(origin).toInstanceOf(Object)
expect(origin.a).toEquals(foo.a)
expect(origin.b).toEquals(foo.b)
expect(origin.c.d.e).toEquals(foo.d)

反序列化: 将原始数据模型(OriginModal)的实例转换成实体数据模型(EntityModel)的实例

const originData = originFoo

const ctx = new Context()
const foo = ctx.fooSet.deserialize(originData)

expect(foo).toInstanceOf(Foo)
expect(foo.a).toEquals(originData.a)
expect(foo.b).toEquals(originData.b)
expect(foo.d).toEquals(originData.c.d.e)

概念介绍

  • 原始数据模型
  • 实体数据模型
  • 数据集
  • 序列化
  • 反序列化

未来计划

About

用于前端的实体框架, 使CRUD更简单

License:GNU General Public License v3.0


Languages

Language:TypeScript 80.4%Language:JavaScript 19.6%