diff --git a/packages/core/src/model-definition.ts b/packages/core/src/model-definition.ts index 9ba1803607d4..bd2efdb2d86d 100644 --- a/packages/core/src/model-definition.ts +++ b/packages/core/src/model-definition.ts @@ -201,7 +201,7 @@ export class ModelDefinition { // TODO: deep freeze this.options // caution: mergeModelOptions mutates its first input - this.options = mergeModelOptions( + this.options = mergeModelOptions( // default options { noPrimaryKey: false, @@ -959,11 +959,11 @@ function banReferenceModel(reference: T): T { * @param options * @param overrideOnConflict */ -export function mergeModelOptions( - existingModelOptions: ModelOptions, - options: ModelOptions, +export function mergeModelOptions( + existingModelOptions: ModelOptions, + options: ModelOptions, overrideOnConflict: boolean, -): ModelOptions { +): ModelOptions { // merge-able: scopes, indexes for (const [optionName, optionValue] of Object.entries(options) as Array< [keyof ModelOptions, any] diff --git a/packages/core/src/model.d.ts b/packages/core/src/model.d.ts index 00986abd2df5..13aee05d7796 100644 --- a/packages/core/src/model.d.ts +++ b/packages/core/src/model.d.ts @@ -2115,7 +2115,7 @@ export interface ModelOptions { /** * Custom validation functions run on all instances of the model. */ - [name: string]: (value: unknown) => boolean; + [name: string]: ((this: M) => void) | ((this: M, callback: (err: unknown) => void) => void); } | undefined;