从已清理的其他列值中键入列值

Tho*_*ggi 2 entity typescript typeorm

我有一个User使用 typeorm 的课程。是否可以使用柱变压器

@Entity()
class User {
  @Index(ColumnIndex.UNIQUE_EMAIL, { unique: true })
  @IsEmail()
  @Column({ type: PostgresColumn.VARCHAR })
  email: ReadOnlyColumn<string>

  @Field()
  @IsEmail()
  @Column({ type: PostgresColumn.VARCHAR })
  authoredEmail: string
}
Run Code Online (Sandbox Code Playgroud)

给定一个相应的存储库,我希望能够像这样创建:

user.create({
 authoredEmail: "Thomas.mEoW@gmail.com"
})
Run Code Online (Sandbox Code Playgroud)

不知怎的,我想“规范化电子邮件”email专栏Sanitizer.normalizeEmail(str, isLowercase);。这可以在使用变压器的实体中发生吗?

mar*_*mon 13

你可以在变压器中做任何事情:

@Column({ 
  transformer: {
    to: (value: string) => value.toLowerCase(),
    from: (value: string) => value
  }
 })
email: string
Run Code Online (Sandbox Code Playgroud)