denolib/typeorm
インストール
code:sh
... ソースコードのダウンロードにしばらくかかります...
$ typeorm version
TypeORM CLI version: v0.2.23-rc5
本家TypeORMとの違い・制限
denoはTypeScriptのソースをesnext形式でコンパイルします。
しかし、TypeORMはTypeScriptのソースがes5形式へコンパイルされることを想定しています。() このあたりの差異が原因で、Decorator metadataを使おうとすると、Entity間の循環依存が発生してしまいます() 影響
@CreateDateColumn及び@UpdateDateColumnを除き、マッピング先カラムの型を明示する必要があります。
Lazy relationsを利用する際は、lazyオプションを明示する必要があります
code:lazy-relations.ts
@Entity()
export class Post {
...
@OneToMany(type => Tag, { lazy: true })
tags: Promise<Tag[]>;
...
}
回避策
ColumnOptions.typeを明示する
entity schemasは、ES decoratorsやDecorator metadataに依存せず、マッピング情報を定義するための仕組み
将来的にTypeORMの作者は、entity schemasを主要なマッピング方法にすることを考えているようです?
re-work entity schemas and make them "primary way of defining a database schema model"