使用Typescript装饰器设计客户端规范化关系实体?

时间:2018-10-25 21:26:44

标签: javascript typescript orm typeorm

我正在为Web应用开发a minimal reactive entity store,并试图弄清楚如何对实体进行建模,以使它们可以在客户端具有一对一,一对多等关系,但同时时间在思考是否有一种方法可以使该实体仅具有对其他实体的JPA like引用。

例如,假设我们有一个鼓掌的帖子,这些鼓掌具有一对一的关系。我们可以这样设计一个帖子:

class Post {
    clapIDs: [3423df324, 32423sdr23, 324324]
    claps: [{..}, {..}, {..}, {..}]
}

帖子clapIDs属性包含唯一标识帖子鼓掌的ID。 claps数组包含拍手的实例。

因此,总的来说,我们并不真正在乎或不想管理clapIDs属性。理想情况下,它将被隐藏,我们将使用claps之类的注释来注释@Column(clap_ids)属性。

这样,当我们保存实体时,可以首先使用clap_ids属性将其代理到某些内容中,然后使用REST请求通过电线将其发送出去。

我看过TypeORM,但这似乎是针对服务器端的,我正在寻找一种在客户端可用的轻量级的东西。

可能的答案

帖子上的claps参考类型可以是:

type ClapsType = Claps[] | Claps['id'][];

然后在Post上有

class Post {
    claps: ClapsType;
}

然后,客户可以要求商店解析/取消解析具有相应实体的属性。

0 个答案:

没有答案