Registry / database / sequelizejs-decorators

sequelizejs-decorators

JSON →
library6.1.7jsnpmunverified

Provides TypeScript decorators (Entity, Column, BelongsTo, HasMany, etc.) for defining Sequelize v6 models declaratively. Current version 6.1.7 aligns with Sequelize major version 6. Ships TypeScript declarations. Requires `experimentalDecorators` and `emitDecoratorMetadata` in tsconfig. Release cadence follows Sequelize major versions. Key differentiator: allows schema definition entirely via decorators, reducing boilerplate versus traditional Sequelize model definitions.

npm install sequelizejs-decorators
INSTALL
IMPORT
SIG · SEQUELIZEJS-DECORA
S
sequelizejs-decorators
databasejavascriptv6.1.7
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Entity
✓ import { Entity } from 'sequelizejs-decorators'
✗ const Entity = require('sequelizejs-decorators').Entity;
ESM import is the recommended pattern; CommonJS require is also supported for CJS projects.
Column
✓ import { Column } from 'sequelizejs-decorators'
✗ import { Column } from 'sequelizejs-decorators/lib/Column';
All decorators are exported from the package root; no need for deep imports.
registerEntities
✓ import { registerEntities } from 'sequelizejs-decorators'
✗ import { registerEntities } from 'sequelizejs-decorators/lib/register';
The function to register entities and sync Sequelize models is exported from the main entry.
DataType
✓ import { DataType } from 'sequelizejs-decorators'
✗ import DataType from 'sequelizejs-decorators';
DataType is a named export, not a default export. Default export is not provided.

Shows minimal setup: define a User entity, register with Sequelize instance, sync, and create a record.

import { Sequelize } from 'sequelize'; import { Entity, PrimaryGeneratedColumn, Column } from 'sequelizejs-decorators'; import { registerEntities } from 'sequelizejs-decorators'; @Entity() class User { @PrimaryGeneratedColumn() id: number; @Column({ type: DataType.STRING(255) }) name: string; } const sequelize = new Sequelize('sqlite::memory:'); registerEntities(sequelize); await sequelize.sync(); const user = await UserModel.create({ name: 'Alice' }); console.log(user.id);
Debug
Known issues
deprecatedThe decorator `pubilc` is a typo in the README example; correct is `public`.
fix
Use `public` keyword instead of `pubilc`.
affects: ALL
gotchaRequires `experimentalDecorators` and `emitDecoratorMetadata` in tsconfig. Missing these will cause runtime errors.
fix
Add "experimentalDecorators": true and "emitDecoratorMetadata": true to tsconfig.json compilerOptions.
affects: ALL
breakingVersion 6.x requires Sequelize v6. Using with Sequelize v5 or v7 will cause incompatibility.
fix
Use sequelizejs-decorators v5.x for Sequelize v5.
affects: >=6.0.0
gotchaEach entity class must have exactly one @PrimaryGeneratedColumn or @PrimaryColumn decorator. Missing primary key causes model sync errors.
fix
Add @PrimaryGeneratedColumn() or @PrimaryColumn() to one property.
affects: ALL
gotchaAssociation decorators (@BelongsTo, @HasMany, @ManyToMany) require a callback returning the related class to avoid circular dependency issues.
fix
Use arrow function: @HasMany(() => Player) instead of @HasMany(Player).
affects: ALL
Errors
Common errors & fixes
TypeError: (0 , sequelizejs_decorators_1.Entity) is not a function
Using CJS require when package is consumed as ESM, or vice versa.
fix
Ensure both your project and this package use the same module system. Use `import` for ESM, `require` for CJS.
Sequelize requires a model definition, but the class is not registered.
Forgetting to call `registerEntities(sequelize)` after defining entity classes.
fix
Call `registerEntities(sequelize)` with your Sequelize instance before synchronizing models.
Cannot find name 'DataType'.
DataType is a named export; importing it incorrectly (e.g., default import) or not importing at all.
fix
Use `import { DataType } from 'sequelizejs-decorators';`
Error: No PrimaryKey defined for model User.
Entity class is missing a primary key decorator.
fix
Add @PrimaryGeneratedColumn() or @PrimaryColumn() to a property.
Upgrade
Version history
6.1.7latest on npm
Audit
Dependencies
sequelizerequiredPeer dependency; decorators generate Sequelize model definitions at runtime
Agent activity
6 hits · last 30 days
node
6
Resources
sequelizejs-decorators — npm install sequelizejs-decorators · libregistry