CLI Internals
Blueprint Actions
Advanced Patterns

Advanced Patterns

Dynamic Blueprints & Conditional Generation

Advanced techniques for blueprint authors.


Dynamic Blueprint Functions

export default function(config: MergedConfiguration): BlueprintAction[] {
  const actions = [];
  
  // Always add core
  actions.push(...generateCoreActions(config));
  
  // Conditional features
  if (config.activeFeatures.includes('auth')) {
    actions.push(...generateAuthActions(config));
  }
  
  if (config.activeFeatures.includes('payments')) {
    actions.push(...generatePaymentActions(config));
  }
  
  return actions;
}

forEach Patterns

Loop Over Components

{
  forEach: 'module.parameters.components',
  type: 'CREATE_FILE',
  path: 'components/ui/{{item}}.tsx',
  template: 'component.ejs'
}

Loop Over Database Tables

{
  forEach: 'module.parameters.tables',
  type: 'CREATE_FILE',
  path: 'src/app/api/{{item}}/route.ts',
  template: 'api-route.ejs',
  data: { tableName: '{{item}}' }
}

Next: Modifiers →