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; +}