@autofleet/sequelize-utils 6.1.2 → 6.1.3

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.
Files changed (2) hide show
  1. package/README.md +89 -4
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,91 @@
1
- # V6 migration
1
+ # v6 Migration Guide
2
+
3
+ ## What changed (breaking)
4
+
5
+ * `@autofleet/events` **and** `@autofleet/logger` are now **peerDependencies** of this package, instead of being direct deps.
6
+ * `@autofleet/events` minimum version was changed from **v4** to **v5**, removing the implicit dep on `@autofleet/zehut`
7
+ * `registerModelEventHooks` now **requires** an `events` instance.
8
+ * Minimum Node.js version is **18**.
9
+
10
+ ## Why
11
+
12
+ * Peer deps ensure a single shared instance of `logger`/`events` across services, keeping trace context intact.
13
+ * Requiring `events` at hook registration avoids hidden globals and makes wiring explicit.
14
+
15
+ ## Install/upgrade
16
+
17
+ ```bash
18
+ # npm
19
+ npm i @autofleet/events@latest @autofleet/logger
20
+ ```
21
+
22
+ Ensure Node ≥ 18:
23
+
24
+ ## API changes
25
+
26
+ **Init**
27
+
28
+ ```ts
29
+ // was
30
+ sequelizeUtilsInit(sequelize)
31
+
32
+ // now (logger is optional but recommended to preserve trace context)
33
+ sequelizeUtilsInit(sequelize, logger)
34
+ ```
35
+
36
+ **Hooks**
37
+
38
+ ```ts
39
+ // was
40
+ registerModelEventHooks(mapping)
41
+
42
+ // now (events is required)
43
+ registerModelEventHooks(mapping, events)
44
+ ```
45
+
46
+ ## Migration steps
47
+
48
+ 1. **Install peers**: `@autofleet/events` (v5) and `@autofleet/logger`.
49
+ 2. **Pass logger at init** to keep original trace context.
50
+ 3. **Pass events to hooks** (required).
51
+ 4. **Run on Node 18+**.
52
+
53
+ ## Before / After
54
+
55
+ **Before**
56
+
57
+ ```ts
58
+ import sequelizeUtilsInit from '@autofleet/sequelize-utils';
59
+ import { Sequelize } from 'sequelize-typescript';
60
+
61
+ const modelEventsTableMapping = {
62
+ SequelizeModel: { tableName: 'big_query_table' },
63
+ };
64
+
65
+ const { registerModelEventHooks } = sequelizeUtilsInit(sequelize);
66
+ ```
67
+
68
+ **After**
69
+
70
+ ```ts
71
+ import sequelizeUtilsInit from '@autofleet/sequelize-utils';
72
+ import { Sequelize } from 'sequelize-typescript';
73
+ import logger from '../../logger';
74
+ import events from '../../events';
75
+
76
+ const modelEventsTableMapping = {
77
+ SequelizeModel: { tableName: 'big_query_table' },
78
+ };
79
+
80
+ // pass logger to preserve trace context
81
+ const { registerModelEventHooks } = sequelizeUtilsInit(sequelize, logger);
82
+
83
+ // events is now required
84
+ registerModelEventHooks(modelEventsTableMapping, events);
85
+ ```
86
+
87
+ ## Reference
88
+
89
+ Read the `@autofleet/events` v5 changes here: README: [link](https://github.com/Autofleet/autorepo/blob/60a175c70ebdba217612c2ee58be8f31881d6540/packages/events/README.md)
2
90
 
3
- The breaking change in this version is the **implicit** upgrade of `zehut` from v3 to v4, via the upgrade of `@autofleet/events`.
4
- The required version of zehut is now `^4.0.0`.
5
91
 
6
- Additionally, the minimum node version is now 18, due to the minimum version of node defined in `zehut`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/sequelize-utils",
3
- "version": "6.1.2",
3
+ "version": "6.1.3",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",