CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-autorest--configuration

Configuration management system for AutoRest's REST API client library generator

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

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

docs

cli-arguments.md

configuration-loading.md

configuration-management.md

configuration-schema.md

configuration-types.md

directive-processing.md

file-resolution.md

index.md

utilities.md

tile.json