or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli-arguments.mdconfiguration-loading.mdconfiguration-management.mdconfiguration-schema.mdconfiguration-types.mddirective-processing.mdfile-resolution.mdindex.mdutilities.md
tile.json

cli-arguments.mddocs/

CLI Arguments

The CLI arguments module provides parsing and validation of command-line arguments for AutoRest configuration.

Core Functions

parseArgs

function parseArgs(cliArgs: string[]): CliArgs;

interface CliArgs {
  positional: string[];
  options: Record<string, any>;
  optionList: Array<{ key: string; value: any }>;
}

Parses raw command line arguments into structured format with positional arguments and options.

Parameters:

  • cliArgs: string[] - Array of command line arguments to parse

Returns:

  • CliArgs object containing:
    • positional: string[] - Positional arguments (typically configuration files)
    • options: Record<string, any> - Parsed options with latest values for duplicate flags
    • optionList: Array<{key: string; value: any}> - Complete list of all options including duplicates

Example:

import { parseArgs } from "@autorest/configuration";

const args = parseArgs([
  "swagger.json",
  "--input-file=api.yaml",
  "--output-folder=./generated",
  "--debug=true"
]);

console.log(args.positional); // ["swagger.json"]
console.log(args.options); // { "input-file": "api.yaml", "output-folder": "./generated", "debug": true }

parseAutorestCliArgs

function parseAutorestCliArgs(cliArgs: string[]): AutorestCliArgs | undefined;

interface AutorestCliArgs {
  options: AutorestNormalizedConfiguration;
  configFileOrFolder: string | undefined;
}

Parses and validates AutoRest-specific command line arguments with configuration schema validation.

Parameters:

  • cliArgs: string[] - Array of command line arguments

Returns:

  • AutorestCliArgs object with validated options, or undefined if parsing/validation fails

Example:

import { parseAutorestCliArgs } from "@autorest/configuration";

const result = parseAutorestCliArgs([
  "config.md",
  "--input-file=swagger.json",
  "--output-folder=./generated",
  "--csharp",
  "--namespace=MyApi"
]);

if (result) {
  const { options, configFileOrFolder } = result;
  console.log("Config file:", configFileOrFolder); // "config.md"
  console.log("Options:", options);
}

Argument Format

CLI arguments follow these patterns:

  • Configuration files: Positional arguments (e.g., config.md, autorest.yaml)
  • Flags: --flag-name=value or --flag-name:value format
  • Boolean flags: --flag-name (defaults to true)
  • Nested properties: Use dot notation (e.g., --foo.bar=value)

Validation

The parseAutorestCliArgs function performs validation against the AutoRest configuration schema:

  • Validates flag names against known configuration properties
  • Type-checks values according to schema definitions
  • Reports detailed error messages for invalid configurations
  • Returns undefined if validation fails with errors logged

Error Handling

Invalid CLI arguments result in:

  • Detailed error messages indicating the problematic flag
  • Path information showing exactly which property failed validation
  • Graceful failure with undefined return value for parseAutorestCliArgs