@ttoss/postgresdb
Advanced tools
@@ -11,3 +11,3 @@ /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */ | ||
| import { DataType as SequelizeDataType, Sequelize } from "sequelize-typescript"; | ||
| import { BelongsTo, BelongsToMany, Column, CreatedAt, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, PrimaryKey, Sequelize as Sequelize2, Table, Unique, UpdatedAt } from "sequelize-typescript"; | ||
| import { AfterBulkCreate, AfterBulkDestroy, AfterBulkRestore, AfterBulkSync, AfterBulkUpdate, AfterConnect, AfterCreate, AfterDefine, AfterDestroy, AfterFind, AfterInit, AfterRestore, AfterSave, AfterUpdate, AfterUpsert, AfterValidate, BeforeBulkCreate, BeforeBulkDestroy, BeforeBulkRestore, BeforeBulkSync, BeforeBulkUpdate, BeforeConnect, BeforeCount, BeforeCreate, BeforeDefine, BeforeDestroy, BeforeFind, BeforeFindAfterExpandIncludeAll, BeforeFindAfterOptions, BeforeInit, BeforeRestore, BeforeSave, BeforeUpdate, BeforeUpsert, BeforeValidate, BelongsTo, BelongsToMany, Column, CreatedAt, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, PrimaryKey, Sequelize as Sequelize2, Table, Unique, UpdatedAt, ValidationFailed } from "sequelize-typescript"; | ||
| pgvector.registerType(Sequelize); | ||
@@ -65,2 +65,2 @@ var DataType = SequelizeDataType; | ||
| import { Op } from "sequelize"; | ||
| export { BelongsTo, BelongsToMany, Column, CreatedAt, DataType, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, Op, PrimaryKey, Sequelize2 as Sequelize, Table, Unique, UpdatedAt, initialize }; | ||
| export { AfterBulkCreate, AfterBulkDestroy, AfterBulkRestore, AfterBulkSync, AfterBulkUpdate, AfterConnect, AfterCreate, AfterDefine, AfterDestroy, AfterFind, AfterInit, AfterRestore, AfterSave, AfterUpdate, AfterUpsert, AfterValidate, BeforeBulkCreate, BeforeBulkDestroy, BeforeBulkRestore, BeforeBulkSync, BeforeBulkUpdate, BeforeConnect, BeforeCount, BeforeCreate, BeforeDefine, BeforeDestroy, BeforeFind, BeforeFindAfterExpandIncludeAll, BeforeFindAfterOptions, BeforeInit, BeforeRestore, BeforeSave, BeforeUpdate, BeforeUpsert, BeforeValidate, BelongsTo, BelongsToMany, Column, CreatedAt, DataType, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, Op, PrimaryKey, Sequelize2 as Sequelize, Table, Unique, UpdatedAt, ValidationFailed, initialize }; |
+1
-1
| import { DataType as DataType$1, ModelCtor, SequelizeOptions, Sequelize, Model } from 'sequelize-typescript'; | ||
| export { BelongsTo, BelongsToMany, Column, CreatedAt, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, ModelCtor, PrimaryKey, Sequelize, SequelizeOptions, Table, Unique, UpdatedAt } from 'sequelize-typescript'; | ||
| export { AfterBulkCreate, AfterBulkDestroy, AfterBulkRestore, AfterBulkSync, AfterBulkUpdate, AfterConnect, AfterCreate, AfterDefine, AfterDestroy, AfterFind, AfterInit, AfterRestore, AfterSave, AfterUpdate, AfterUpsert, AfterValidate, BeforeBulkCreate, BeforeBulkDestroy, BeforeBulkRestore, BeforeBulkSync, BeforeBulkUpdate, BeforeConnect, BeforeCount, BeforeCreate, BeforeDefine, BeforeDestroy, BeforeFind, BeforeFindAfterExpandIncludeAll, BeforeFindAfterOptions, BeforeInit, BeforeRestore, BeforeSave, BeforeUpdate, BeforeUpsert, BeforeValidate, BelongsTo, BelongsToMany, Column, CreatedAt, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, ModelCtor, PrimaryKey, Sequelize, SequelizeOptions, Table, Unique, UpdatedAt, ValidationFailed } from 'sequelize-typescript'; | ||
| import { DataType as DataType$2 } from 'sequelize'; | ||
@@ -4,0 +4,0 @@ export { Op } from 'sequelize'; |
+1
-1
| { | ||
| "name": "@ttoss/postgresdb", | ||
| "version": "0.3.0", | ||
| "version": "0.4.0", | ||
| "description": "A library to handle PostgreSQL database connections and queries", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
+71
-0
@@ -372,2 +372,73 @@ # @ttoss/postgresdb | ||
| #### Hooks | ||
| Lifecycle hooks allow you to execute code at specific points in the model lifecycle. All hook decorators from sequelize-typescript are available: | ||
| **Instance Hooks:** | ||
| - `@BeforeValidate`, `@AfterValidate`, `@ValidationFailed` | ||
| - `@BeforeCreate`, `@AfterCreate` | ||
| - `@BeforeUpdate`, `@AfterUpdate` | ||
| - `@BeforeDestroy`, `@AfterDestroy` | ||
| - `@BeforeSave`, `@AfterSave` (v4 only) | ||
| - `@BeforeUpsert`, `@AfterUpsert` (v4 only) | ||
| - `@BeforeRestore`, `@AfterRestore` | ||
| **Bulk Hooks:** | ||
| - `@BeforeBulkCreate`, `@AfterBulkCreate` | ||
| - `@BeforeBulkUpdate`, `@AfterBulkUpdate` | ||
| - `@BeforeBulkDestroy`, `@AfterBulkDestroy` | ||
| - `@BeforeBulkRestore`, `@AfterBulkRestore` | ||
| - `@BeforeBulkSync`, `@AfterBulkSync` | ||
| **Query Hooks:** | ||
| - `@BeforeFind`, `@AfterFind` | ||
| - `@BeforeFindAfterExpandIncludeAll`, `@BeforeFindAfterOptions` | ||
| - `@BeforeCount` | ||
| **Connection Hooks:** | ||
| - `@BeforeConnect`, `@AfterConnect` | ||
| - `@BeforeDefine`, `@AfterDefine` | ||
| - `@BeforeInit`, `@AfterInit` | ||
| **Example:** | ||
| ```typescript | ||
| import { | ||
| Table, | ||
| Column, | ||
| Model, | ||
| BeforeCreate, | ||
| BeforeUpdate, | ||
| } from '@ttoss/postgresdb'; | ||
| @Table | ||
| class Product extends Model { | ||
| @Column | ||
| declare name: string; | ||
| @Column | ||
| declare slug: string; | ||
| @BeforeCreate | ||
| static generateSlug(instance: Product) { | ||
| if (instance.name && !instance.slug) { | ||
| instance.slug = instance.name.toLowerCase().replace(/\s+/g, '-'); | ||
| } | ||
| } | ||
| @BeforeUpdate | ||
| static updateSlug(instance: Product) { | ||
| if (instance.changed('name') && instance.name) { | ||
| instance.slug = instance.name.toLowerCase().replace(/\s+/g, '-'); | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
| See the [sequelize-typescript hooks documentation](https://github.com/sequelize/sequelize-typescript#hooks) for more details. | ||
| ### DataType | ||
@@ -374,0 +445,0 @@ |
19257
21.17%90
4.65%484
17.19%