const fs = require("fs"); const path = require("path"); class ModelBuilder { static build() { const config = require("./configuration.json"); const modelDir = path.join(__dirname, "release/models"); // Create release/models directory if (!fs.existsSync(modelDir)) fs.mkdirSync(modelDir, { recursive: true }); config.model.forEach((model) => { const modelCode = `const { DataTypes } = require('sequelize'); module.exports = (sequelize) => { return sequelize.define('${model.name}', { ${model.field .map( (field) => ` ${field[0]}: { type: DataTypes.${field[1].toUpperCase()}, allowNull: ${field[3] === "required" ? "false" : "true"} }` ) .join(",")} }, { timestamps: true }); };`; fs.writeFileSync( path.join(modelDir, `${model.name}.model.js`), modelCode ); }); } } module.exports = ModelBuilder;