不要怂,就是干,撸起袖子干!

Commit 1d7f2090 by Vitaliy Zaytsev Committed by Simon Schick

fix(types): add null to afterFind hook (#11051)

1 parent c8be0be3
...@@ -40,7 +40,7 @@ export interface ModelHooks<M extends Model = Model> { ...@@ -40,7 +40,7 @@ export interface ModelHooks<M extends Model = Model> {
beforeCount(options: CountOptions): HookReturn; beforeCount(options: CountOptions): HookReturn;
beforeFindAfterExpandIncludeAll(options: FindOptions): HookReturn; beforeFindAfterExpandIncludeAll(options: FindOptions): HookReturn;
beforeFindAfterOptions(options: FindOptions): HookReturn; beforeFindAfterOptions(options: FindOptions): HookReturn;
afterFind(instancesOrInstance: M[] | M, options: FindOptions): HookReturn; afterFind(instancesOrInstance: M[] | M | null, options: FindOptions): HookReturn;
beforeSync(options: SyncOptions): HookReturn; beforeSync(options: SyncOptions): HookReturn;
afterSync(options: SyncOptions): HookReturn; afterSync(options: SyncOptions): HookReturn;
beforeBulkSync(options: SyncOptions): HookReturn; beforeBulkSync(options: SyncOptions): HookReturn;
......
...@@ -2311,11 +2311,11 @@ export abstract class Model<T = any, T2 = any> extends Hooks { ...@@ -2311,11 +2311,11 @@ export abstract class Model<T = any, T2 = any> extends Hooks {
public static afterFind<M extends Model>( public static afterFind<M extends Model>(
this: { new (): M } & typeof Model, this: { new (): M } & typeof Model,
name: string, name: string,
fn: (instancesOrInstance: M[] | M, options: FindOptions) => HookReturn fn: (instancesOrInstance: M[] | M | null, options: FindOptions) => HookReturn
): void; ): void;
public static afterFind<M extends Model>( public static afterFind<M extends Model>(
this: { new (): M } & typeof Model, this: { new (): M } & typeof Model,
fn: (instancesOrInstance: M[] | M, options: FindOptions) => HookReturn fn: (instancesOrInstance: M[] | M | null, options: FindOptions) => HookReturn
): void; ): void;
/** /**
......
...@@ -647,10 +647,10 @@ export class Sequelize extends Hooks { ...@@ -647,10 +647,10 @@ export class Sequelize extends Hooks {
*/ */
public static afterFind( public static afterFind(
name: string, name: string,
fn: (instancesOrInstance: Model[] | Model, options: FindOptions) => void fn: (instancesOrInstance: Model[] | Model | null, options: FindOptions) => void
): void; ): void;
public static afterFind( public static afterFind(
fn: (instancesOrInstance: Model[] | Model, options: FindOptions) => void fn: (instancesOrInstance: Model[] | Model | null, options: FindOptions) => void
): void; ): void;
/** /**
...@@ -953,9 +953,9 @@ export class Sequelize extends Hooks { ...@@ -953,9 +953,9 @@ export class Sequelize extends Hooks {
*/ */
public afterFind( public afterFind(
name: string, name: string,
fn: (instancesOrInstance: Model[] | Model, options: FindOptions) => void fn: (instancesOrInstance: Model[] | Model | null, options: FindOptions) => void
): void; ): void;
public afterFind(fn: (instancesOrInstance: Model[] | Model, options: FindOptions) => void): void; public afterFind(fn: (instancesOrInstance: Model[] | Model | null, options: FindOptions) => void): void;
/** /**
* A hook that is run before a define call * A hook that is run before a define call
......
import {Model, SaveOptions, Sequelize} from "sequelize" import {Model, SaveOptions, Sequelize, FindOptions} from "sequelize"
import { ModelHooks } from "../lib/hooks"; import { ModelHooks } from "../lib/hooks";
/* /*
...@@ -7,6 +7,8 @@ import { ModelHooks } from "../lib/hooks"; ...@@ -7,6 +7,8 @@ import { ModelHooks } from "../lib/hooks";
Sequelize.beforeSave((t: TestModel, options: SaveOptions) => {}); Sequelize.beforeSave((t: TestModel, options: SaveOptions) => {});
Sequelize.afterSave((t: TestModel, options: SaveOptions) => {}); Sequelize.afterSave((t: TestModel, options: SaveOptions) => {});
Sequelize.afterFind((t: TestModel[] | TestModel | null, options: FindOptions) => {});
Sequelize.afterFind('namedAfterFind', (t: TestModel[] | TestModel | null, options: FindOptions) => {});
/* /*
* covers types/lib/hooks.d.ts * covers types/lib/hooks.d.ts
...@@ -16,6 +18,7 @@ export const sequelize = new Sequelize('uri', { ...@@ -16,6 +18,7 @@ export const sequelize = new Sequelize('uri', {
hooks: { hooks: {
beforeSave (m: Model, options: SaveOptions) {}, beforeSave (m: Model, options: SaveOptions) {},
afterSave (m: Model, options: SaveOptions) {}, afterSave (m: Model, options: SaveOptions) {},
afterFind (m: Model[] | Model | null, options: FindOptions) {},
} }
}); });
...@@ -25,12 +28,14 @@ class TestModel extends Model { ...@@ -25,12 +28,14 @@ class TestModel extends Model {
const hooks: Partial<ModelHooks> = { const hooks: Partial<ModelHooks> = {
beforeSave(t: TestModel, options: SaveOptions) { }, beforeSave(t: TestModel, options: SaveOptions) { },
afterSave(t: TestModel, options: SaveOptions) { }, afterSave(t: TestModel, options: SaveOptions) { },
afterFind(t: TestModel | TestModel[] | null, options: FindOptions) { },
}; };
TestModel.init({}, {sequelize, hooks }) TestModel.init({}, {sequelize, hooks })
TestModel.addHook('beforeSave', (t: TestModel, options: SaveOptions) => { }); TestModel.addHook('beforeSave', (t: TestModel, options: SaveOptions) => { });
TestModel.addHook('afterSave', (t: TestModel, options: SaveOptions) => { }); TestModel.addHook('afterSave', (t: TestModel, options: SaveOptions) => { });
TestModel.addHook('afterFind', (t: TestModel[] | TestModel | null, options: FindOptions) => { });
/* /*
* covers types/lib/model.d.ts * covers types/lib/model.d.ts
...@@ -38,3 +43,4 @@ TestModel.addHook('afterSave', (t: TestModel, options: SaveOptions) => { }); ...@@ -38,3 +43,4 @@ TestModel.addHook('afterSave', (t: TestModel, options: SaveOptions) => { });
TestModel.beforeSave((t: TestModel, options: SaveOptions) => { }); TestModel.beforeSave((t: TestModel, options: SaveOptions) => { });
TestModel.afterSave((t: TestModel, options: SaveOptions) => { }); TestModel.afterSave((t: TestModel, options: SaveOptions) => { });
TestModel.afterFind((t: TestModel | TestModel[] | null, options: FindOptions) => { });
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!