@salesforce/b2c-tooling-sdk / scaffold
scaffold
Scaffold generation for B2C Commerce projects.
This module provides functions for discovering, validating, and executing project scaffolds (templates) for cartridges, custom APIs, Page Designer components, jobs, and other B2C artifacts.
Scaffold Discovery
Scaffolds are discovered from multiple sources in priority order:
- Project scaffolds (
.b2c/scaffolds/) - highest priority - Plugin scaffolds (via
b2c:scaffold-providershook) - User scaffolds (
~/.b2c/scaffolds/) - Built-in scaffolds - lowest priority
Later sources override earlier ones by name.
- ScaffoldRegistry - Registry for managing scaffold discovery
- createScaffoldRegistry - Create a new registry instance
Scaffold Generation
- generateFromScaffold - Generate files from a scaffold
- previewScaffold - Preview generation without writing files
Template Engine
- ScaffoldEngine - EJS-based template rendering engine
Validation
- validateScaffoldManifest - Validate a scaffold manifest
- validateParameters - Validate parameter values
Usage
typescript
import {
createScaffoldRegistry,
generateFromScaffold,
} from '@salesforce/b2c-tooling-sdk/scaffold';
// Create registry and find scaffolds
const registry = createScaffoldRegistry();
const scaffolds = await registry.getScaffolds();
// Get a specific scaffold
const cartridgeScaffold = await registry.getScaffold('cartridge');
// Generate files
const result = await generateFromScaffold(cartridgeScaffold, {
outputDir: './output',
variables: { cartridgeName: 'app_custom' },
});Classes
Interfaces
- FileMapping
- FileModification
- GeneratedFile
- JsonMergeOptions
- ParameterResolutionError
- ParameterValidationError
- ParameterValidationResult
- ResolvedParameters
- ResolvedParameterSchema
- ResolveOutputDirectoryOptions
- ResolveParametersOptions
- Scaffold
- ScaffoldChoice
- ScaffoldContext
- ScaffoldDiscoveryOptions
- ScaffoldGenerateOptions
- ScaffoldGenerateResult
- ScaffoldManifest
- ScaffoldParameter
- ScaffoldProvider
- ScaffoldTransformer
- SourceResult
- TemplateContext
- TemplateHelpers
- TextInsertOptions
- ValidateScaffoldOptions
- ValidationIssue
- ValidationResult
Type Aliases
- DynamicParameterSource
- OverwriteBehavior
- ScaffoldCategory
- ScaffoldParameterType
- ScaffoldProviderPriority
- ScaffoldSource
- ValidationIssueSeverity
Variables
Functions
- appendContent
- camelCase
- checkOrphanedFiles
- checkTemplateFiles
- createScaffoldRegistry
- createTemplateContext
- createTemplateHelpers
- evaluateCondition
- generateFromScaffold
- getParameterSchemas
- insertAfter
- insertBefore
- isRemoteSource
- isValidParameterName
- isValidScaffoldName
- kebabCase
- mergeJson
- parseParameterOptions
- pascalCase
- prependContent
- previewScaffold
- renderPathTemplate
- renderTemplate
- resolveLocalSource
- resolveOutputDirectory
- resolveRemoteSource
- resolveScaffoldParameters
- snakeCase
- validateAgainstSource
- validateEjsSyntax
- validateParameters
- validateScaffoldDirectory
- validateScaffoldManifest