@ttoss/postgresdb 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -369,6 +369,77 @@ Initializes database connection and loads models.
369
369
 
370
370
  All [sequelize-typescript](https://www.npmjs.com/package/sequelize-typescript) decorators are exported: `@Table`, `@Column`, `@ForeignKey`, etc.
371
371
 
372
+ #### Hooks
373
+
374
+ Lifecycle hooks allow you to execute code at specific points in the model lifecycle. All hook decorators from sequelize-typescript are available:
375
+
376
+ **Instance Hooks:**
377
+
378
+ - `@BeforeValidate`, `@AfterValidate`, `@ValidationFailed`
379
+ - `@BeforeCreate`, `@AfterCreate`
380
+ - `@BeforeUpdate`, `@AfterUpdate`
381
+ - `@BeforeDestroy`, `@AfterDestroy`
382
+ - `@BeforeSave`, `@AfterSave` (v4 only)
383
+ - `@BeforeUpsert`, `@AfterUpsert` (v4 only)
384
+ - `@BeforeRestore`, `@AfterRestore`
385
+
386
+ **Bulk Hooks:**
387
+
388
+ - `@BeforeBulkCreate`, `@AfterBulkCreate`
389
+ - `@BeforeBulkUpdate`, `@AfterBulkUpdate`
390
+ - `@BeforeBulkDestroy`, `@AfterBulkDestroy`
391
+ - `@BeforeBulkRestore`, `@AfterBulkRestore`
392
+ - `@BeforeBulkSync`, `@AfterBulkSync`
393
+
394
+ **Query Hooks:**
395
+
396
+ - `@BeforeFind`, `@AfterFind`
397
+ - `@BeforeFindAfterExpandIncludeAll`, `@BeforeFindAfterOptions`
398
+ - `@BeforeCount`
399
+
400
+ **Connection Hooks:**
401
+
402
+ - `@BeforeConnect`, `@AfterConnect`
403
+ - `@BeforeDefine`, `@AfterDefine`
404
+ - `@BeforeInit`, `@AfterInit`
405
+
406
+ **Example:**
407
+
408
+ ```typescript
409
+ import {
410
+ Table,
411
+ Column,
412
+ Model,
413
+ BeforeCreate,
414
+ BeforeUpdate,
415
+ } from '@ttoss/postgresdb';
416
+
417
+ @Table
418
+ class Product extends Model {
419
+ @Column
420
+ declare name: string;
421
+
422
+ @Column
423
+ declare slug: string;
424
+
425
+ @BeforeCreate
426
+ static generateSlug(instance: Product) {
427
+ if (instance.name && !instance.slug) {
428
+ instance.slug = instance.name.toLowerCase().replace(/\s+/g, '-');
429
+ }
430
+ }
431
+
432
+ @BeforeUpdate
433
+ static updateSlug(instance: Product) {
434
+ if (instance.changed('name') && instance.name) {
435
+ instance.slug = instance.name.toLowerCase().replace(/\s+/g, '-');
436
+ }
437
+ }
438
+ }
439
+ ```
440
+
441
+ See the [sequelize-typescript hooks documentation](https://github.com/sequelize/sequelize-typescript#hooks) for more details.
442
+
372
443
  ### DataType
373
444
 
374
445
  All standard Sequelize data types are available through `DataType`, including:
package/dist/esm/index.js CHANGED
@@ -8,7 +8,7 @@ var __name = (target, value) => __defProp(target, "name", {
8
8
  // src/sequelize-typescript.ts
9
9
  import pgvector from "pgvector/sequelize";
10
10
  import { DataType as SequelizeDataType, Sequelize } from "sequelize-typescript";
11
- import { BelongsTo, BelongsToMany, Column, CreatedAt, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, PrimaryKey, Sequelize as Sequelize2, Table, Unique, UpdatedAt } from "sequelize-typescript";
11
+ 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";
12
12
  pgvector.registerType(Sequelize);
13
13
  var DataType = SequelizeDataType;
14
14
 
@@ -61,4 +61,4 @@ var initialize = /* @__PURE__ */__name(async ({
61
61
 
62
62
  // src/index.ts
63
63
  import { Op } from "sequelize";
64
- export { BelongsTo, BelongsToMany, Column, CreatedAt, DataType, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, Op, PrimaryKey, Sequelize2 as Sequelize, Table, Unique, UpdatedAt, initialize };
64
+ 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 };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { DataType as DataType$1, ModelCtor, SequelizeOptions, Sequelize, Model } from 'sequelize-typescript';
2
- export { BelongsTo, BelongsToMany, Column, CreatedAt, DeletedAt, ForeignKey, HasMany, HasOne, Index, Model, ModelCtor, PrimaryKey, Sequelize, SequelizeOptions, Table, Unique, UpdatedAt } from 'sequelize-typescript';
2
+ 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';
3
3
  import { DataType as DataType$2 } from 'sequelize';
4
4
  export { Op } from 'sequelize';
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttoss/postgresdb",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "A library to handle PostgreSQL database connections and queries",
5
5
  "license": "MIT",
6
6
  "author": "ttoss",
@@ -33,7 +33,7 @@
33
33
  "@testcontainers/postgresql": "^11.8.1",
34
34
  "jest": "^30.2.0",
35
35
  "tsup": "^8.5.1",
36
- "@ttoss/config": "^1.35.12"
36
+ "@ttoss/config": "^1.36.0"
37
37
  },
38
38
  "keywords": [
39
39
  "database",