Added KyselifyModel
and GeneratedAlways
.
Now it's possible to translate your modern Sequelize (>= 6.14.0) models to Kysely table schema types!
@Table({modelName: 'KitchenSink', tableName: 'kitchen_sink', underscored: true})
export class KitchenSinkModel extends Model<
InferAttributes<KitchenSinkModel>,
InferCreationAttributes<KitchenSinkModel>
> {
declare id: GeneratedAlways<CreationOptional<number>>
@Column({allowNull: false, type: DataType.STRING(255)})
name: string
@Column(DataType.STRING(255))
preferredName: string | null
declare createdAt: CreationOptional<Date>
declare updatedAt: CreationOptional<Date>
declare getProjects: HasManyGetAssociationsMixin<ProjectModel>
declare addProject: HasManyAddAssociationMixin<ProjectModel, number>
declare addProjects: HasManyAddAssociationsMixin<ProjectModel, number>
declare setProjects: HasManySetAssociationsMixin<ProjectModel, number>
declare removeProject: HasManyRemoveAssociationMixin<ProjectModel, number>
declare removeProjects: HasManyRemoveAssociationsMixin<ProjectModel, number>
declare hasProject: HasManyHasAssociationMixin<ProjectModel, number>
declare hasProjects: HasManyHasAssociationsMixin<ProjectModel, number>
declare countProjects: HasManyCountAssociationsMixin
declare createProject: HasManyCreateAssociationMixin<ProjectModel, 'kitchenSinkId'>
@HasMany(() => ProjectModel, 'kitchenSinkId')
projects: NonAttribute<ProjectModel[]>
@BelongsTo(() => KitchenModel, 'kitchenId')
kitchen: NonAttribute<KitchenModel>
declare kitchenId: ForeignKey<number | null>
get fullName(): NonAttribute<string> {
return this.name
}
declare static associations: {
projects: Association<KitchenSinkModel, ProjectModel>
}
}
type KitchenSink = KyselifyModel<KitchenSinkModel>
interface Database {
kitchenSink: KitchenSink
}