From 9e7b54baffb8f4f4602efc3a3a22fc5b5189ad7a Mon Sep 17 00:00:00 2001 From: Victor Korzunin Date: Mon, 6 Sep 2021 10:19:26 +0200 Subject: [PATCH] refactor: define prepare models function --- .plop/index.ts.hbs | 29 +++++++++++++++-------------- prisma/models/index.ts | 29 +++++++++++++++-------------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/.plop/index.ts.hbs b/.plop/index.ts.hbs index 4bf8a51..c7840cb 100644 --- a/.plop/index.ts.hbs +++ b/.plop/index.ts.hbs @@ -28,6 +28,17 @@ export const createInstance = async () => { }, }); + const models = prepareModels(sequelize); + + await sequelize.authenticate(); + + return { + sequelize, + models, + }; +}; + +function prepareModels(sequelize: Sequelize) { const models = { {{#each models}} {{name}}: {{name}}Factory(sequelize), @@ -35,19 +46,9 @@ export const createInstance = async () => { }; Object.keys(models).forEach((model) => { - if (models[model].associate) { - models[model].associate(models); - } - - if (models[model].hooks) { - models[model].hooks(models); - } + models[model].associate?.(models); + models[model].hooks?.(models); }); - await sequelize.authenticate(); - - return { - sequelize, - models, - }; -}; + return models; +} diff --git a/prisma/models/index.ts b/prisma/models/index.ts index 162fbaf..b08f616 100644 --- a/prisma/models/index.ts +++ b/prisma/models/index.ts @@ -55,20 +55,7 @@ export const createInstance = async () => { }, }); - const models = { - User: UserFactory(sequelize), - Post: PostFactory(sequelize), - }; - - Object.keys(models).forEach((model) => { - if (models[model].associate) { - models[model].associate(models); - } - - if (models[model].hooks) { - models[model].hooks(models); - } - }); + const models = prepareModels(sequelize); await sequelize.authenticate(); @@ -77,3 +64,17 @@ export const createInstance = async () => { models, }; }; + +function prepareModels(sequelize: Sequelize) { + const models = { + User: UserFactory(sequelize), + Post: PostFactory(sequelize), + }; + + Object.keys(models).forEach((model) => { + models[model].associate?.(models); + models[model].hooks?.(models); + }); + + return models; +}