RoutedNodeDeployCommand constructor
RoutedNodeDeployCommand({
- dynamic logger,
- dynamic fileSystem,
- 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,
);
}