1.1.3 • Published 11 months ago

@arrkid/vue-wrapper-framework v1.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

Vue Wrapper Framework

A flexible and modular Vue.js framework for building micro-frontend applications with TypeScript support. This framework enables you to create scalable applications by dynamically importing independent features as needed.

Features

  • šŸŽÆ Dynamic micro-frontend loading
  • šŸ”’ Type-safe with full TypeScript support
  • šŸŽØ Customizable theming
  • šŸ“¦ Pre-built modular components
  • šŸ› ļø CLI tools for project management
  • šŸ”Œ Easy-to-use plugin system
  • šŸ“± Responsive design ready

Installation

# Create a new project
npx @arrkid/vue-wrapper-framework create my-app

# Navigate to project directory
cd my-app

# Start development server
npm run dev

Available Features

Currently, the framework includes two pre-built features:

Feature A: Counter

A simple counter component demonstrating state management and event handling.

npx vue-wrapper import featureA

Feature B: Todo List

A fully functional todo list with add, remove, and toggle capabilities.

npx vue-wrapper import featureB

Basic Usage

<template>
  <FrameworkWrapper :config="config">
    <template #header>
      <nav>
        <!-- Your navigation -->
      </nav>
    </template>
    
    <router-view></router-view>
    
    <template #footer>
      <footer>
        <!-- Your footer -->
      </footer>
    </template>
  </FrameworkWrapper>
</template>

<script setup lang="ts">
import { FrameworkWrapper } from '@arrkid/vue-wrapper-framework';

const config = {
  features: ['featureA', 'featureB'],
  theme: {
    primary: '#42b883',
    secondary: '#35495e'
  }
};
</script>

Configuration

The framework accepts a configuration object with the following options:

interface WrapperConfig {
  // List of features to load
  features?: string[];
  
  // Theme configuration
  theme?: {
    primary: string;
    secondary: string;
  };
}

Creating Custom Features

  1. Create a new feature module:
import type { FeatureModule } from '@arrkid/vue-wrapper-framework';

const myFeature: FeatureModule = {
  name: 'myFeature',
  component: MyComponent,
  routes: [
    {
      path: '/my-feature',
      component: MyComponent
    }
  ],
  async setup() {
    // Initialization logic
  }
};

export default myFeature;
  1. Register your feature in the wrapper configuration:
const config = {
  features: ['myFeature'],
  // ... other config options
};

CLI Commands

# Create a new project
npx vue-wrapper create my-app

# Import features
npx vue-wrapper import featureA featureB

# Add a new feature (scaffolding)
npx vue-wrapper generate feature my-feature

Project Structure

my-app/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ components/
│   │   └── FrameworkWrapper.vue
│   ā”œā”€ā”€ features/
│   │   ā”œā”€ā”€ featureA/
│   │   └── featureB/
│   ā”œā”€ā”€ core/
│   │   ā”œā”€ā”€ createApp.ts
│   │   ā”œā”€ā”€ featureLoader.ts
│   │   └── store.ts
│   └── types/
│       └── index.ts
ā”œā”€ā”€ package.json
└── vite.config.ts

Development

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Run tests
npm test

Best Practices

  1. Feature Independence: Each feature should be self-contained with its own components, styles, and logic.

  2. Type Safety: Always use TypeScript interfaces and types for component props and state.

  3. Error Handling: Implement error boundaries and loading states for feature imports.

  4. Performance: Use lazy loading for features that aren't immediately needed.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support, please: 1. Check the documentation 2. Open an issue 3. Submit a feature request 4. Contribute to the project

Acknowledgments

  • Vue.js team for the amazing framework
  • All contributors who have helped shape this project
  • The Vue community for inspiration and support

Author

Your Name

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago

1.0.19

11 months ago

1.0.18

11 months ago

1.0.17

11 months ago

1.0.16

11 months ago

1.0.15

11 months ago

1.0.14

11 months ago

1.0.13

11 months ago

1.0.12

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago