1.0.1 ⢠Published 5 months ago
@prolaxu/galaxy-api-tool v1.0.1
@prolaxu/galaxy-api-tool
A powerful CLI tool for generating Galaxy API files and Vue.js CRUD components. This tool replaces bash scripts with a robust, cross-platform Node.js solution.
š Quick Start
Use with npx (no installation required):
# Generate API files with Request validation
npx @prolaxu/galaxy-api-tool gen:api User
# Generate API files without Request (uses EmptyRequest)
npx @prolaxu/galaxy-api-tool gen:api-empty Category
# Generate Vue.js CRUD views
npx @prolaxu/galaxy-api-tool gen:views admin/User
# Generate everything (API + Views)
npx @prolaxu/galaxy-api-tool gen:all inventory/Productš¦ Installation
Global Installation
npm install -g @prolaxu/galaxy-api-toolLocal Installation
npm install @prolaxu/galaxy-api-tool
npx galaxy-api-tool --helpš ļø Commands
gen:api <ModelName>
Generates complete Galaxy API files with Request validation.
npx @prolaxu/galaxy-api-tool gen:api UserGenerated files:
src/GalaxyAPI/Controllers/UserController.phpsrc/GalaxyAPI/Requests/UserRequest.phpsrc/GalaxyAPI/Resources/UserResource.php
gen:api-empty <ModelName>
Generates Galaxy API files without Request validation (uses EmptyRequest).
npx @prolaxu/galaxy-api-tool gen:api-empty CategoryGenerated files:
src/GalaxyAPI/Controllers/CategoryController.phpsrc/GalaxyAPI/Resources/CategoryResource.php
gen:views <ModelInput>
Generates Vue.js CRUD components and Pinia store. Supports grouping.
# Simple model
npx @prolaxu/galaxy-api-tool gen:views User
# Grouped model
npx @prolaxu/galaxy-api-tool gen:views admin/User
# Nested grouping
npx @prolaxu/galaxy-api-tool gen:views inventory/ProductGenerated files:
resources/assets/spa/stores/modules/[path]/use[Model]Store.jsresources/assets/spa/modules/[path]/[Model]Form.vueresources/assets/spa/modules/[path]/[Model]ListComponent.vueresources/assets/spa/modules/[path]/[Model]Select.vue
gen:all <ModelInput>
Generates both API files and Vue.js CRUD components.
# Generate everything with Request validation
npx @prolaxu/galaxy-api-tool gen:all admin/User
# Generate everything without Request validation
npx @prolaxu/galaxy-api-tool gen:all admin/User --emptyšÆ Options
Custom Output Path
All commands support a custom output path:
npx @prolaxu/galaxy-api-tool gen:api User --path /custom/project/pathEmpty Request
Use --empty flag with gen:all to generate API without Request validation:
npx @prolaxu/galaxy-api-tool gen:all User --emptyš Output Structure
API Files
src/
āāā GalaxyAPI/
āāā Controllers/
ā āāā UserController.php
āāā Requests/
ā āāā UserRequest.php
āāā Resources/
āāā UserResource.phpVue.js CRUD Files
resources/
āāā assets/
āāā spa/
āāā modules/
ā āāā admin/
ā āāā user/
ā āāā UserForm.vue
ā āāā UserListComponent.vue
ā āāā UserSelect.vue
āāā stores/
āāā modules/
āāā admin/
āāā user/
āāā useUserStore.jsš§ Model Input Formats
The tool supports various model input formats:
| Input | Output Path | API Endpoint |
|---|---|---|
User | user/ | v2/tenant/user |
admin/User | admin/user/ | v2/tenant/admin/user |
inventory/Product | inventory/product/ | v2/tenant/inventory/product |
š Examples
Generate User Management
# Generate complete user management system
npx @prolaxu/galaxy-api-tool gen:all User
# Output:
# ā
Generated all files:
# API Files:
# - Controller: src/GalaxyAPI/Controllers/UserController.php
# - Request: src/GalaxyAPI/Requests/UserRequest.php
# - Resource: src/GalaxyAPI/Resources/UserResource.php
# CRUD Files:
# š Store: resources/assets/spa/stores/modules/user/useUserStore.js
# š Form: resources/assets/spa/modules/user/UserForm.vue
# š List: resources/assets/spa/modules/user/UserListComponent.vue
# š½ Select: resources/assets/spa/modules/user/UserSelect.vueGenerate Admin Panel Components
# Generate admin-specific components
npx @prolaxu/galaxy-api-tool gen:views admin/Dashboard
# Output:
# ā
Generated CRUD files for Dashboard:
# š Group: admin
# š Store: resources/assets/spa/stores/modules/admin/dashboard/useDashboardStore.js
# š Form: resources/assets/spa/modules/admin/dashboard/DashboardForm.vue
# š List: resources/assets/spa/modules/admin/dashboard/DashboardListComponent.vue
# š½ Select: resources/assets/spa/modules/admin/dashboard/DashboardSelect.vue
#
# š Next steps:
# 1. Update the columns array in DashboardListComponent.vue
# 2. Add form fields to DashboardForm.vue
# 3. Import and use components in your routes/pages
# 4. API endpoint: v2/tenant/admin/dashboardGenerate Inventory System
# Generate inventory management with empty request
npx @prolaxu/galaxy-api-tool gen:all inventory/Product --empty
# Output includes both API and CRUD files for inventory/productš¦ Error Handling
The tool includes comprehensive error handling:
- Model name validation: Ensures valid model names
- Path validation: Checks for valid file paths
- Directory creation: Automatically creates necessary directories
- Template validation: Validates template syntax
# Invalid model name
npx @prolaxu/galaxy-api-tool gen:api ""
# ā Error: Model name