Many to Many relationship: "TypeError: Right-hand side of 'instanceof' is not an object"
Issue
TypeError: Right-hand side of 'instanceof' is not an object
Versions
- sequelize: 6.16.1
- sequelize-typescript: ~2.1.3
- typescript: ~4.5.5
Issue type
- [x ] bug report
- [ ] feature request
Actual behavior
I have failed to create models with many-to-many relationship.
Expected behavior
Steps to reproduce
Related code
// role.model.ts
import { BelongsToMany, Model, Table } from 'sequelize-typescript';
import { PermissionModel } from '../permissions';
import { RolePermissionModel } from './role-permission.model';
@Table({
tableName: 'roles',
})
export class RoleModel extends Model {
@BelongsToMany(() => PermissionModel, () => RolePermissionModel)
permissions?: Array<PermissionModel & { RolePermissionModel: RolePermissionModel }>;
}
// permission.model.ts
import { BelongsToMany, Model, Table } from 'sequelize-typescript';
import { RoleModel, RolePermissionModel } from '../roles';
@Table({
tableName: 'permissions',
})
export class PermissionModel extends Model {
@BelongsToMany(() => RoleModel, () => RolePermissionModel)
roles?: Array<RoleModel & { RolePermissionModel: RolePermissionModel }>;
}
// role-permission.model.ts
import { BelongsTo, Column, ForeignKey, Model, Table } from 'sequelize-typescript';
import { PermissionModel } from '../permissions';
import { RoleModel } from './role.model';
@Table({
tableName: 'roles-permissions',
})
export class RolePermissionModel extends Model {
@Column
@ForeignKey(() => RoleModel)
roleId!: number;
@BelongsTo(() => RoleModel, 'roleId')
role!: RoleModel;
@Column
@ForeignKey(() => PermissionModel)
permissionId!: number;
@BelongsTo(() => PermissionModel, 'permissionId')
permission!: PermissionModel;
}
TypeError: Right-hand side of 'instanceof' is not an object
at getForeignKeyOptions (C:\Project\node_modules\sequelize-typescript\dist\associations\foreign-key\foreign-key-service.js:26:40)
at BelongsToManyAssociation.getSequelizeOptions (C:\Project\node_modules\sequelize-typescript\dist\associations\belongs-to-many\belongs-to-many-association.js:42:77)
at C:\Project\node_modules\sequelize-typescript\dist\sequelize\sequelize\sequelize.js:53:45
at Array.forEach (