【Drizzle ORM】Value Objectに変換するCustom typeを定義する
Drizzle ORMでDBからの値 ←→ Value Objectのインスタンスの相互変換をしたい時、Custom typesを実装することで実現できそう。
ちなみにValue Objectは下記のように実装した前提で進める。
【TypeScript】Value Object(値オブジェクト)を実装する
解決法
カスタム型の実装ために提供されているジェネレータ関数customType()
を利用する1。
- 対象のクラス
- データ型
- カラム名
を引数で受け取り、ドライバーに渡す時はvalue
を、ドライバーから受け取った時はValue Objectとしてインスタンス化するようにする。
利用方法としてはスキーマ定義時に上記のように呼び出すだけ。
参考
-
DBの種類によってimport元は変わってくる ↩