sx-cli-tool
Version:
Laravel va Vue frameworklaridagi monolith arxitektura loyihalarni boshqarish uchun mo'ljallangan CLI tool
32 lines (29 loc) • 1.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateModel = generateModel;
const fs_1 = __importDefault(require("fs"));
const folder_1 = require("../../utils/folder");
const path_1 = __importDefault(require("path"));
const formatter_1 = require("../../utils/formatter");
const prettier_1 = require("../../utils/prettier");
function generateModel(modelName, fields, projectPath, groupName = "/admin") {
const modelPath = path_1.default.join(projectPath, "app", "Models", groupName, `${modelName}.php`);
const template = `<?php
namespace App\\Models${(0, formatter_1.replaceSlashes)(groupName)};
use Illuminate\\Database\\Eloquent\\Factories\\HasFactory;
use Illuminate\\Database\\Eloquent\\Model;
class ${modelName} extends Model
{
use HasFactory;
protected $fillable = [${fields
.map((field) => `"${field.name}"`)
.join(",")}];
}
`;
(0, folder_1.ensureDirectoryExists)(modelPath);
fs_1.default.writeFileSync(modelPath, template, "utf8");
(0, prettier_1.formatPhpFile)(modelPath);
}