refactor(hooks): remove method aliases for hooks (#10880)
* refactor(hooks): remove method aliases for hooks
BREAKING CHANGE:
In order to streamline API:
- All method style add hook functions have been removed in favor of a composition based approach.
- Hook names have been removed, you can add and remove them by function reference instead which was supported before.
- Another notable change that `this` inside of hooks no longer refers to the the the hook subject, it should not be used.
This affects `Model`, `Sequelize` and `Transaction`.
#### Composition
Before: `MyModel.beforeCreate(...)`
After: `MyModel.hooks.add('beforeCreate', ...)`
Before: `MyModel.addHook('beforeCreate', ...)`
After: `MyModel.hooks.add('beforeCreate', ...)`
Before: `MyModel.removeHook('beforeCreate', ...)`
After: `MyModel.hooks.remove('beforeCreate', ...)`
Before: `transaction.afterCommit(...)`
After: `transaction.hooks.add('afterCommit', ...)`
#### Names
Before:
```js
MyModel.addHook('beforeCreate', 'named', fn);
MyModel.removeHook('beforeCreate', 'named');
```
After:
```js
MyModel.hooks.add('beforeCreate', fn);
MyModel.hooks.remove('beforeCreate', fn);
```
#### Scope
Before: `MyModel.addHook('beforeCreate', function() { this.someMethod(); });`
After: `MyModel.hooks.add('beforeCreate', () => { MyModel.someMethod(); });`
Showing
with
609 additions
and
1837 deletions
-
Please register or sign in to post a comment