UNPKG

spartacus-mcp-server

Version:

MCP server for SAP Spartacus development tools - Generate components, services, and models following Spartacus conventions

303 lines (261 loc) 7.06 kB
# Component Generation Examples This directory contains examples for all component generation tools in the Spartacus MCP framework. ## 🛠️ Available Tools 1. **create-component** - Basic component creation 2. **create-smart-component** - Smart component with state management 3. **create-b2b-component** - B2B-specific component 4. **create-b2c-component** - B2C-specific component 5. **create-cms-component** - CMS-enabled component 6. **create-product-component** - Product-related component 7. **create-cart-component** - Cart-related component 8. **create-checkout-component** - Checkout-related component 9. **create-user-component** - User management component 10. **create-search-component** - Search functionality component 11. **create-navigation-component** - Navigation component 12. **create-layout-component** - Layout component 13. **create-form-component** - Form component with validation 14. **refactor-component** - Component refactoring 15. **optimize-component** - Component optimization ## 📋 Examples ### 1. Basic Component Creation ```json { "tool": "create-component", "arguments": { "name": "ProductCard", "outputPath": "./src/app/components", "type": "component", "includeTests": true, "includeStorybook": true, "styling": "scss" } } ``` ### 2. Smart Component with State Management ```json { "tool": "create-smart-component", "arguments": { "name": "ProductList", "outputPath": "./src/app/components", "stateManagement": "ngrx", "apiIntegration": true, "includeEffects": true, "includeSelectors": true, "includeTests": true } } ``` ### 3. B2B Component ```json { "tool": "create-b2b-component", "arguments": { "name": "OrganizationManagement", "outputPath": "./src/app/b2b/components", "features": ["user-management", "approval-process", "cost-center"], "includePermissions": true, "includeWorkflow": true, "includeTests": true } } ``` ### 4. B2C Component ```json { "tool": "create-b2c-component", "arguments": { "name": "WishlistButton", "outputPath": "./src/app/b2c/components", "features": ["wishlist", "social-sharing", "recommendations"], "includePersonalization": true, "includeAnalytics": true, "includeTests": true } } ``` ### 5. CMS Component ```json { "tool": "create-cms-component", "arguments": { "name": "BannerComponent", "outputPath": "./src/app/cms/components", "cmsComponentType": "SimpleBannerComponent", "smartEditEnabled": true, "personalizationEnabled": true, "includeTests": true } } ``` ### 6. Product Component ```json { "tool": "create-product-component", "arguments": { "name": "ProductDetails", "outputPath": "./src/app/product/components", "features": ["variants", "reviews", "recommendations", "zoom"], "includeB2BFeatures": false, "includeInventory": true, "includeTests": true } } ``` ### 7. Cart Component ```json { "tool": "create-cart-component", "arguments": { "name": "MiniCart", "outputPath": "./src/app/cart/components", "features": ["quick-add", "promotions", "saved-carts"], "includeB2BFeatures": true, "includeValidation": true, "includeTests": true } } ``` ### 8. Checkout Component ```json { "tool": "create-checkout-component", "arguments": { "name": "PaymentMethod", "outputPath": "./src/app/checkout/components", "paymentMethods": ["credit-card", "paypal", "apple-pay"], "includeValidation": true, "includeSecurity": true, "includeTests": true } } ``` ### 9. User Component ```json { "tool": "create-user-component", "arguments": { "name": "UserProfile", "outputPath": "./src/app/user/components", "features": ["profile-edit", "address-book", "order-history"], "includeAuthentication": true, "includePermissions": true, "includeTests": true } } ``` ### 10. Search Component ```json { "tool": "create-search-component", "arguments": { "name": "ProductSearch", "outputPath": "./src/app/search/components", "features": ["autocomplete", "facets", "sorting", "pagination"], "includeFilters": true, "includeAnalytics": true, "includeTests": true } } ``` ### 11. Navigation Component ```json { "tool": "create-navigation-component", "arguments": { "name": "MegaMenu", "outputPath": "./src/app/navigation/components", "navigationLevels": 3, "includeSearch": true, "includeMobile": true, "includeAccessibility": true, "includeTests": true } } ``` ### 12. Layout Component ```json { "tool": "create-layout-component", "arguments": { "name": "ProductListLayout", "outputPath": "./src/app/layout/components", "layoutType": "grid", "responsive": true, "includeFilters": true, "includePagination": true, "includeTests": true } } ``` ### 13. Form Component ```json { "tool": "create-form-component", "arguments": { "name": "ContactForm", "outputPath": "./src/app/forms/components", "formType": "reactive", "validationRules": ["required", "email", "phone"], "includeAccessibility": true, "includeI18n": true, "includeTests": true } } ``` ### 14. Component Refactoring ```json { "tool": "refactor-component", "arguments": { "componentPath": "./src/app/components/product-card.component.ts", "refactorType": "extract-service", "targetService": "ProductCardService", "preserveTests": true, "updateImports": true } } ``` ### 15. Component Optimization ```json { "tool": "optimize-component", "arguments": { "componentPath": "./src/app/components/product-list.component.ts", "optimizations": ["change-detection", "lazy-loading", "bundle-size"], "generateReport": true, "preserveTests": true } } ``` ## 🎯 Common Parameters ### Required Parameters - **name**: Component name (PascalCase) - **outputPath**: Directory where component will be created ### Optional Parameters - **includeTests**: Generate unit tests (default: true) - **includeStorybook**: Generate Storybook stories (default: false) - **styling**: CSS preprocessor (scss, css, less) - **changeDetection**: OnPush or Default - **standalone**: Create standalone component (Angular 14+) ### Feature-Specific Parameters - **features**: Array of feature flags - **stateManagement**: ngrx, akita, or none - **apiIntegration**: Enable API integration - **includePermissions**: Add permission checks - **includeAnalytics**: Add analytics tracking ## 💡 Best Practices 1. **Use descriptive names** for components 2. **Enable tests** for all components 3. **Choose appropriate features** for your use case 4. **Consider B2B vs B2C** requirements 5. **Include accessibility** features when needed 6. **Use OnPush change detection** for performance 7. **Enable i18n** for multi-language support ## 🔧 Next Steps After generating components: 1. Review generated code 2. Customize styling 3. Add business logic 4. Run tests 5. Update documentation