RoutedNodeDeployCommand constructor

RoutedNodeDeployCommand({
  1. dynamic logger,
  2. dynamic fileSystem,
  3. DeploymentProcessRunner? processRunner,
})

Creates the deployment command.

Implementation

RoutedNodeDeployCommand({
  super.logger,
  super.fileSystem,
  this._processRunner,
}) {
  argParser
    ..addOption(
      'target',
      help: 'Deployment target.',
      allowed: const ['cloudflare', 'netlify', 'vercel'],
      defaultsTo: 'cloudflare',
    )
    ..addOption(
      'entry',
      help: 'Dart library that exports the selected Worker factory.',
      valueHelp: 'package:my_app/app.dart',
    )
    ..addOption(
      'cloudflare-factory',
      help:
          'Cloudflare factory shape. Use environment when the app exports '
          'createCloudflareEngine(CloudflareEnvironment).',
      allowed: const ['engine', 'environment'],
      defaultsTo: 'engine',
    )
    ..addOption(
      'ssr-entry',
      help:
          'Generated Fetch SSR entry to embed in the Cloudflare Worker. '
          'Its containing build directory is uploaded as assets.',
      valueHelp: 'build/react/ssr.entry.mjs',
    )
    ..addOption(
      'runtime',
      help: 'Vercel runtime.',
      allowed: const ['node', 'edge'],
      defaultsTo: 'node',
    )
    ..addOption(
      'name',
      help: 'Cloudflare Worker name (defaults to the package name).',
      valueHelp: 'worker-name',
    )
    ..addOption(
      'compatibility-date',
      help: 'Cloudflare compatibility date (defaults to today).',
    )
    ..addMultiOption(
      'var',
      help: 'Cloudflare plaintext variable. Use NAME=VALUE.',
      valueHelp: 'NAME=VALUE',
    )
    ..addMultiOption(
      'durable-object',
      help:
          'Cloudflare Durable Object binding. Use ClassName or '
          'BINDING=ClassName.',
      valueHelp: 'BINDING=ClassName',
    )
    ..addMultiOption(
      'd1',
      help: 'Cloudflare D1 binding. Use BINDING=DATABASE_NAME:DATABASE_ID.',
      valueHelp: 'BINDING=DATABASE_NAME:DATABASE_ID',
    )
    ..addMultiOption(
      'r2',
      help: 'Cloudflare R2 binding. Use BINDING=BUCKET_NAME.',
      valueHelp: 'BINDING=BUCKET_NAME',
    )
    ..addMultiOption(
      'queue',
      help: 'Cloudflare Queue producer. Use BINDING=QUEUE_NAME.',
      valueHelp: 'BINDING=QUEUE_NAME',
    )
    ..addMultiOption(
      'service',
      help: 'Cloudflare service binding. Use BINDING=SERVICE_NAME.',
      valueHelp: 'BINDING=SERVICE_NAME',
    )
    ..addMultiOption(
      'container',
      help:
          'Cloudflare Container binding. Use '
          'BINDING=CLASS_NAME|IMAGE|PORT|MAX_INSTANCES.',
      valueHelp: 'BINDING=CLASS_NAME|IMAGE|PORT|MAX_INSTANCES',
    )
    ..addMultiOption(
      'workflow',
      help:
          'Cloudflare Workflow binding. Use '
          'BINDING=WORKFLOW_NAME:CLASS_NAME[:SCRIPT_NAME].',
      valueHelp: 'BINDING=WORKFLOW_NAME:CLASS_NAME[:SCRIPT_NAME]',
    )
    ..addMultiOption(
      'secrets-store',
      help:
          'Cloudflare Secrets Store binding. '
          'Use BINDING=STORE_ID:SECRET_NAME.',
      valueHelp: 'BINDING=STORE_ID:SECRET_NAME',
    )
    ..addFlag(
      'dry-run',
      help: 'Build and validate without uploading.',
      negatable: false,
    )
    ..addFlag(
      'keep-vars',
      help: 'Keep variables configured in the Cloudflare dashboard.',
      negatable: false,
    );
}