A structured template package for vNext workflow components with domain-based architecture.
Create a new project with your domain name:
npx @burgan-tech/vnext-template <domain-name>npx @burgan-tech/vnext-template user-managementThis will create a new directory with your domain name, copy all template files, replace {domainName} instances, and install dependencies automatically.
npx @burgan-tech/vnext-template@<version> <domain-name>Example:
npx @burgan-tech/vnext-template@1.0.0 user-managementnpm install @burgan-tech/vnext-template
npm run setup <domain-name>Or install specific version:
npm install @burgan-tech/vnext-template@<version>
npm run setup <domain-name>Or use environment variable:
DOMAIN_NAME=user-management npm install @burgan-tech/vnext-template@<version>After installation, your project structure will be:
<domain-name>/
βββ Extensions/
βββ Functions/
βββ Schemas/
βββ Tasks/
βββ Views/
βββ Workflows/
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:
{
"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:
{
"paths": {
"componentsRoot": "src",
"workflows": "Flows",
"schemas": "Models"
}
}Validate your project structure and schemas:
npm run validateThis 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:
# Runtime build (default) - Complete domain structure
npm run build
# Reference build - Only exported components
npm run build:reference
# Runtime build explicitly
npm run build:runtimenpm run build -- [options]
Options:
-o, --output <dir> Output directory (default: dist)
-t, --type <type> Build type: reference or runtime (default: runtime)
--skip-validation Skip validation during build
-h, --help Show help message| Type | Description | Use Case |
|---|---|---|
runtime |
Complete domain structure with all files | Engine deployment |
reference |
Only exported components from vnext.config.json | Cross-domain usage |
# 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-validationRuntime Build:
dist/
βββ <domain>/
β βββ Extensions/
β βββ Functions/
β βββ Schemas/
β βββ Tasks/
β βββ Views/
β βββ Workflows/
βββ vnext.config.json
βββ package.json
βββ README.md
βββ LICENSE
Reference Build:
dist/
βββ <domain>/
β βββ 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
| 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 <name> |
Setup domain with given name |
npm run sync-schema |
Sync schema version from dependencies |
npm test |
Run tests |
MIT