From acf760be0c5a04c2ffc194855750a336a7a9bb89 Mon Sep 17 00:00:00 2001 From: Pablo Moleri Date: Tue, 22 May 2018 11:01:55 -0300 Subject: [PATCH] [sequelize] Add explanation for Model.associate? method --- types/sequelize/index.d.ts | 9 +++++++++ types/sequelize/sequelize-tests.ts | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/types/sequelize/index.d.ts b/types/sequelize/index.d.ts index cc4bef61ba..673225665a 100644 --- a/types/sequelize/index.d.ts +++ b/types/sequelize/index.d.ts @@ -4085,6 +4085,15 @@ declare namespace sequelize { /** * Set associations with other models * + * Not part of the sequelize API, used as convention to associate models after creation. e.g.: + * ```js + * Object.keys(models).forEach(modelName => { + * if (models[modelName].associate) { + * models[modelName].associate(models); + * } + * }); + * ``` + * * @param models */ associate?(models: Models): void; diff --git a/types/sequelize/sequelize-tests.ts b/types/sequelize/sequelize-tests.ts index bc600c961d..3d2bbdfe05 100644 --- a/types/sequelize/sequelize-tests.ts +++ b/types/sequelize/sequelize-tests.ts @@ -1523,6 +1523,13 @@ s.define( 'ScopeMe', { } } ); +// Test convention method used to associate models after creation +Object.keys(s.models).forEach(modelName => { + if (s.models[modelName].associate) { + s.models[modelName].associate(s.models); + } +}); + // Generic find options interface ChairAttributes { id: number;