🦁
TypeORM の create が信用できないなら build メソッドを用意すると良さげ
TypeORM
create が信用できない件
以下、公式サイトの例から。
仮に User Entity のid・firstName 等の値の指定が必須だとしても、 create のタイミングではエラーを吐きません。
create 後に値の追加・更新が行われることが想定されているようです。
- create - Creates a new instance of User. Optionally accepts an object literal with user properties which will be written into newly created user object
const user = repository.create() // same as const user = new User(); const user = repository.create({ id: 1, firstName: "Timber", lastName: "Saw", }) // same as const user = new User(); user.firstName = "Timber"; user.lastName = "Saw";
build メソッドを用意して、生成時に誤りを見つけたい
以下のように build メソッドを用意し、それを使用すれば、生成のタイミングで簡単に誤りを見つけることができます。
Entity ごとに定義するのは少し面倒ですが、特に生成の箇所が散らばるのであれば、用意しておく価値は十分にあると思います。
Entity に変更が加わる度に、生成の箇所を見直すのは結構面倒ですよね。
e.g. とある値のデフォルト値が削除された
// 事前に UserProps を定義しておく
static build(props: UserProps) {
return User.create({ ...props });
}
あとがき
とはいえ、 create の使用を制限するわけではないので、ルールの作成・周知は必要だと思います。
TypeORM はチームによって使い方が結構違いそうなイメージがあります。
Tips やルール等、コメントにてご教授いただけると嬉しいです!
Discussion