https://github.com/burgan-tech/vnext-example
vnext-example provides reference workflows and components for the vNext Platform, demonstrating recommended patterns, composition techniques, and end-to-end flows to guide developers in building real-world implementations.
https://github.com/burgan-tech/vnext-example
example local mock vnext
Last synced: 14 days ago
JSON representation
vnext-example provides reference workflows and components for the vNext Platform, demonstrating recommended patterns, composition techniques, and end-to-end flows to guide developers in building real-world implementations.
- Host: GitHub
- URL: https://github.com/burgan-tech/vnext-example
- Owner: burgan-tech
- License: mit
- Created: 2025-11-21T09:00:08.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2026-03-24T08:04:44.000Z (26 days ago)
- Last Synced: 2026-03-25T09:59:22.787Z (25 days ago)
- Topics: example, local, mock, vnext
- Language: C#
- Homepage:
- Size: 373 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# core
A structured template package for vNext workflow components with domain-based architecture. This package provides a foundation for building scalable workflow systems with schemas, tasks, views, functions, and extensions.
[](https://opensource.org/licenses/MIT)
## 🚀 Features
- **Domain-Driven Architecture**: Organized by business domains with clear separation of concerns
- **Component-Based Structure**: Modular design with schemas, workflows, tasks, views, functions, and extensions
- **JSON Schema Validation**: Built-in validation for all component definitions
- **Template System**: Ready-to-use template structure for new vNext projects
- **Type Safety**: Structured exports with clear APIs for accessing components
## 📦 Installation
### Install as dependency
```bash
npm install @my-organization/core
```
### Install as dev dependency
```bash
npm install --save-dev @my-organization/core
```
## 🏗️ Project Structure
```
vnext-template/
├── core/ # Domain-specific components
│ ├── Extensions/ # Extension definitions
│ ├── Functions/ # Function definitions
│ ├── Schemas/ # JSON schema definitions
│ ├── Tasks/ # Task definitions
│ ├── Views/ # View components
│ └── Workflows/ # Workflow definitions
├── index.js # Main entry point
├── vnext.config.json # Domain configuration
└── package.json # Package metadata
```
## 🏛️ Architecture Principles
### Component Types
1. **Schemas**: JSON Schema definitions for data validation
2. **Workflows**: Business process definitions and state machines
3. **Tasks**: Individual task definitions and configurations
4. **Views**: User interface and presentation components
5. **Functions**: Reusable business logic functions
6. **Extensions**: Plugin and extension definitions
## 🛠️ Development
### Running Tests
```bash
npm test
```
## ⚙️ Configuration
The `vnext.config.json` file allows you to customize paths and exports:
```json
{
"domain": "my-domain",
"paths": {
"componentsRoot": "my-domain",
"schemas": "Schemas",
"workflows": "Workflows",
"tasks": "Tasks",
"views": "Views",
"functions": "Functions",
"extensions": "Extensions"
},
"exports": {
"schemas": ["schema1.json", "schema2.json"],
"workflows": ["workflow1.json"],
"tasks": [],
"views": [],
"functions": [],
"extensions": []
}
}
```
### Path Configuration
You can customize component directory names:
```json
{
"paths": {
"componentsRoot": "src",
"workflows": "Flows",
"schemas": "Models"
}
}
```
## ✅ Validation
Validate your project structure and schemas:
```bash
npm run validate
```
This will check:
- Package.json structure and content
- Main entry point functionality
- vnext.config.json validation
- Domain directory structure
- JSON file syntax validation
- Schema validation using @burgan-tech/vnext-schema
- Module functionality
- Semantic versioning compliance
### Validation Output
The validation provides detailed output with:
- ✅ Passed validations
- ❌ Failed validations with file paths and line numbers
- 📊 Summary statistics
- 📋 Failed files summary for easy navigation
## 🏗️ Build
Build your domain package for deployment or cross-domain usage:
```bash
# Runtime build (default) - Complete domain structure
npm run build
# Reference build - Only exported components
npm run build:reference
# Runtime build explicitly
npm run build:runtime
```
### Build Options
```bash
npm run build -- [options]
Options:
-o, --output Output directory (default: dist)
-t, --type Build type: reference or runtime (default: runtime)
--skip-validation Skip validation during build
-h, --help Show help message
```
### Build Types
| Type | Description | Use Case |
|------|-------------|----------|
| `runtime` | Complete domain structure with all files | Engine deployment |
| `reference` | Only exported components from vnext.config.json | Cross-domain usage |
### Examples
```bash
# Build to custom directory
npm run build -- -o my-build
# Reference build to custom directory
npm run build -- -t reference -o packages/ref
# Skip validation for faster builds
npm run build -- --skip-validation
```
### Build Output Structure
**Runtime Build:**
```
dist/
├── /
│ ├── Extensions/
│ ├── Functions/
│ ├── Schemas/
│ ├── Tasks/
│ ├── Views/
│ └── Workflows/
├── vnext.config.json
├── package.json
├── README.md
└── LICENSE
```
**Reference Build:**
```
dist/
├── /
│ ├── Extensions/ # Only exported files
│ ├── Functions/ # Only exported files
│ ├── Schemas/ # Only exported files
│ ├── Tasks/ # Only exported files
│ ├── Views/ # Only exported files
│ └── Workflows/ # Only exported files
├── vnext.config.json
├── package.json
├── README.md
└── LICENSE
```
## 📜 Available Scripts
| Script | Description |
|--------|-------------|
| `npm run validate` | Validate project structure and schemas |
| `npm run build` | Build runtime package to dist/ |
| `npm run build:runtime` | Build runtime package explicitly |
| `npm run build:reference` | Build reference package with exports only |
| `npm run setup ` | Setup domain with given name |
| `npm run sync-schema` | Sync schema version from dependencies |
| `npm test` | Run tests |
## 🤝 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](LICENSE) file for details.
## 🏢 About Burgan Tech
This package is maintained by the Burgan Tech team as part of our commitment to building scalable, domain-driven workflow solutions.
## 🔗 Links
- [NPM Package](https://www.npmjs.com/package/@burgan-tech/vnext-example)
- [GitHub Repository](https://github.com/burgan-tech/vnext-example)
- [Issues](https://github.com/burgan-tech/vnext-example/issues)
- [Documentation](https://github.com/burgan-tech/vnext-example#readme)
## 📞 Support
For support and questions:
- Create an issue on [GitHub](https://github.com/burgan-tech/vnext-example/issues)
- Contact the development team at dev@burgan-tech.com
---
Made with ❤️ by the Burgan Tech team