vNext Service Discovery - Runtime Package for engine deployment
npm install @burgan-tech/vnext-discovery-runtimeA structured template package for vNext workflow components with domain-based architecture.
Create a new project with your domain name:
``bash`
npx @burgan-tech/vnext-template
`bash`
npx @burgan-tech/vnext-template user-management
This will create a new directory with your domain name, copy all template files, replace discovery instances, and install dependencies automatically.
`bash`
npx @burgan-tech/vnext-template@
Example:
`bash`
npx @burgan-tech/vnext-template@1.0.0 user-management
`bash`
npm install @burgan-tech/vnext-template
npm run setup
Or install specific version:
`bash`
npm install @burgan-tech/vnext-template@
npm run setup
Or use environment variable:
`bash`
DOMAIN_NAME=user-management npm install @burgan-tech/vnext-template@
After installation, your project structure will be:
``
āāā Extensions/
āāā Functions/
āāā Schemas/
āāā Tasks/
āāā Views/
āāā Workflows/
`javascript
const vnextTemplate = require('@burgan-tech/vnext-template');
// Get domain configuration
const config = vnextTemplate.getDomainConfig();
// Get paths configuration
const paths = vnextTemplate.getPathsConfig();
// Get all schemas
const schemas = vnextTemplate.getSchemas();
// Get all workflows
const workflows = vnextTemplate.getWorkflows();
// Get all tasks
const tasks = vnextTemplate.getTasks();
// Get component path for a specific type
const schemasPath = vnextTemplate.getComponentPath('schemas');
`
| Method | Description |
|--------|-------------|
| getDomainConfig() | Get domain configuration from vnext.config.json |getPathsConfig()
| | Get paths configuration with defaults |getSchemas()
| | Get all schemas |getWorkflows()
| | Get all workflows |getTasks()
| | Get all tasks |getViews()
| | Get all views |getFunctions()
| | Get all functions |getExtensions()
| | Get all extensions |getDomainName()
| | Get domain directory name |getAvailableTypes()
| | Get list of available component types |getComponentPath(type)
| | Get full path for a component type |
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": []
}
}
You can customize component directory names:
`json`
{
"paths": {
"componentsRoot": "src",
"workflows": "Flows",
"schemas": "Models"
}
}
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
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 your domain package for deployment or cross-domain usage:
`bashRuntime build (default) - Complete domain structure
npm run build
$3
`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
`$3
| Type | Description | Use Case |
|------|-------------|----------|
|
runtime | Complete domain structure with all files | Engine deployment |
| reference | Only exported components from vnext.config.json | Cross-domain usage |$3
`bash
Build to custom directory
npm run build -- -o my-buildReference build to custom directory
npm run build -- -t reference -o packages/refSkip validation for faster builds
npm run build -- --skip-validation
`$3
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 |MIT