UNPKG

sx-cli-tool

Version:

Laravel va Vue frameworklaridagi monolith arxitektura loyihalarni boshqarish uchun mo'ljallangan CLI tool

63 lines (55 loc) 2.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateFormRequest = generateFormRequest; const folder_1 = require("../../utils/folder"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const formatter_1 = require("../../utils/formatter"); const prettier_1 = require("../../utils/prettier"); function generateFormRequest(entityName, fields, projectPath, groupName = "/admin") { const formRequestPath = path_1.default.join(projectPath, "app", "Http", "Requests", groupName, `${entityName}FormRequest.php`); const template = `<?php namespace App\\Http\\Requests${(0, formatter_1.replaceSlashes)(groupName)}; use Illuminate\\Foundation\\Http\\FormRequest; use Illuminate\\Contracts\\Validation\\Validator; use Illuminate\\Http\\Exceptions\\HttpResponseException; class ${entityName}FormRequest extends FormRequest { /** * Determine if the user is authorized to make this request. */ public function authorize(): bool { return true; } /** * Get the validation rules that apply to the request. * * @return array<string, \\Illuminate\\Contracts\\Validation\\ValidationRule|array<mixed>|string> */ public function rules(): array { return [ ${fields .map((field) => `"${field.name}" => "${field.validationRules}"`) .join(",\n")} ]; } // returns validation errors public function failedValidation(Validator $validator) { throw new HttpResponseException(response()->json([ 'success' => false, 'message' => $validator->errors()->first(), 'data' => $validator->errors() ], 422)); } } `; (0, folder_1.ensureDirectoryExists)(formRequestPath); fs_1.default.writeFileSync(formRequestPath, template, "utf8"); (0, prettier_1.formatPhpFile)(formRequestPath); }