@moamc/rn-cli
v1.5.4
Published
Enterprise-grade Code Generation CLI for React Native Applications with Multi-Project Support
Maintainers
Readme
@moamc/rn-cli
Enterprise-grade Code Generation CLI for React Native Applications
🚀 Features
- ✅ Multi-Project Support - Works with both Investor and Distributor apps
- ✅ Automatic Structure Detection - Detects and adapts to your project structure
- ✅ Generate complete feature modules with screens, hooks, and API integration
- ✅ Add screens to existing features with form support
- ✅ Create API services with GET/POST methods
- ✅ Generate React Query hooks with validation
- ✅ Support for multiple field types (text, number, email, date, dropdown, etc.)
- ✅ Automatic validation generation
- ✅ TypeScript-ready templates
📦 Installation
Global Installation (Recommended)
npm install -g @moamc/rn-cliProject-specific Installation
npm install --save-dev @moamc/rn-cli🎯 Usage
After installation, run the CLI from your React Native project root:
rn-cliThe CLI automatically detects your project type (Investor/Distributor) and generates files with the appropriate structure!
Supported Projects
- Investor App - Nested structure (screens/Feature/Screen/Screen.js)
- Distributor App - Flat structure (screens/Feature/Screen.js)
See MULTI_PROJECT_SUPPORT.md for detailed information.
Available Commands
Generate Feature
rn-cli generate:feature
# or
rn-cli g:fCreates a complete feature module with screen, API service, and hooks.
Generate Screen
rn-cli generate:screen
# or
rn-cli g:sAdds a new screen to an existing feature with optional form support.
Generate API
rn-cli generate:api
# or
rn-cli g:aCreates API service methods with React Query integration.
Generate Hook
rn-cli generate:hook
# or
rn-cli g:hGenerates data-fetching hooks with validation.
📁 Project Structure Requirements
The CLI supports two project structures:
Investor App (Nested Structure)
project-root/
├── screens/
│ └── FeatureName/
│ └── ScreenName/
│ ├── ScreenName.js
│ ├── hooks/
│ │ └── useScreenName.js
│ ├── components/
│ │ └── styles.js
│ ├── validation.js
│ ├── constants.js
│ └── helpers.js
├── services/
├── queries/
└── navigations/
└── Navigation.jsDistributor App (Flat Structure)
project-root/
├── screens/
│ └── FeatureName/
│ ├── ScreenName.js
│ ├── hooks/
│ │ └── useScreenName.js
│ ├── components/
│ │ └── ScreenNameStyles.js
│ ├── ScreenNameConstants.js
│ └── ScreenNameHelpers.js
├── services/
├── queries/
└── navigation/
└── Navigation.js🎨 Form Field Types
- Text - Standard text input
- Number - Numeric input
- Email - Email address with validation
- Date - Date picker
- Dropdown - Select from options
- Radio - Single choice
- Checkbox - Multiple choices
- File - File upload
🔌 API Integration
The CLI supports both GET and POST APIs:
- GET API - Fetch data with React Query
- POST API - Submit forms with useMutation
- Automatic cache invalidation after successful POST
✨ Features
Automatic Validation
- Real-time field validation
- Submit-time validation
- Custom validation rules per field type
React Query Integration
- Automatic query key generation
- Cache management
- Error handling
- Loading states
Form Support
- Multiple field types
- Field width control (full/half)
- Required field validation
- Dropdown options
🛠️ Development
To use in development mode:
cd cli-tool
npm linkThen in your project:
rn-cli📝 License
MIT
👥 Author
MOAMC Engineering Team
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
