@autofleet/sequelize-utils 6.1.2 → 6.1.4
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 +89 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,91 @@
|
|
|
1
|
-
#
|
|
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`.
|