or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli-operations.mdconfiguration.mdcore-management.mdindex.mdprogrammatic-api.md
tile.json

tessl/npm-autorest

Code generation tool that generates client libraries for accessing RESTful web services from OpenAPI specifications

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/autorest@3.7.x

To install, run

npx @tessl/cli install tessl/npm-autorest@3.7.0

index.mddocs/

AutoRest

AutoRest is a code generation tool that generates client libraries for accessing RESTful web services from OpenAPI specifications. It provides both a command-line interface for generating code and a programmatic API for integrating AutoRest functionality into custom tools and workflows.

Package Information

  • Package Name: autorest
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install -g autorest (global CLI) or npm install autorest (programmatic use)

Core Imports

For programmatic use:

import { 
  create, 
  initialize, 
  getApplicationEntrypoint,
  AutoRest, 
  Channel, 
  DocumentType,
  isOpenApiDocument,
  identifyDocument,
  toJSON,
  color,
  Message,
  Artifact,
  GenerationResults,
  IFileSystem
} from "autorest";

For CommonJS:

const { 
  create, 
  initialize, 
  getApplicationEntrypoint,
  AutoRest, 
  Channel, 
  DocumentType,
  isOpenApiDocument,
  identifyDocument,
  toJSON,
  color
} = require("autorest");

Basic Usage

CLI Usage

# Generate client library from OpenAPI spec
autorest --input-file=petstore.yaml --output-folder=./generated --csharp

# Show help
autorest --help

# List installed extensions
autorest --info

# Reset AutoRest installation
autorest --reset

Programmatic Usage

import { create, Channel } from "autorest";
import { IAutorestLogger } from "@autorest/common";

// Create AutoRest instance
const logger: IAutorestLogger = /* your logger implementation */;
const autorest = await create(logger);

// Configure and run generation
await autorest.AddConfiguration({
  "input-file": "petstore.yaml",
  "output-folder": "./generated",
  "csharp": true
});

const result = await autorest.Process();

Architecture

AutoRest is built around several key components:

  • Core Bootstrapper: Manages AutoRest core versions and dynamic loading
  • Extension System: Handles language generators and plugins via ExtensionManager
  • Configuration System: Loads and processes AutoRest configuration files
  • CLI Interface: Command-line tool for direct usage
  • Programmatic API: Library interface for integration into other tools
  • Document Processing: OpenAPI specification parsing and validation utilities

Capabilities

CLI Operations

Command-line interface providing direct access to AutoRest functionality, including code generation, extension management, and configuration.

interface AutorestArgs {
  version?: string;
  latest?: boolean;
  preview?: boolean;
  reset?: boolean;
  debug?: boolean;
  info?: boolean;
  verbose?: boolean;
  "message-format"?: "regular" | "json";
  "list-available"?: boolean;
  "list-installed"?: boolean;
  "clear-temp"?: boolean;
  "skip-upgrade-check"?: boolean;
}

function parseAutorestArgs(argv: string[]): AutorestArgs;

CLI Operations

Programmatic API

Core programmatic interface for creating AutoRest instances, processing specifications, and integrating with custom workflows.

function create(
  logger: IAutorestLogger,
  fileSystem?: IFileSystem,
  configFileOrFolderUri?: string
): Promise<AutoRest>;

function initialize(
  logger: IAutorestLogger,
  requestedVersion?: string,
  minimumVersion?: string
): Promise<void>;

function isOpenApiDocument(logger: IAutorestLogger, content: string): Promise<boolean>;

function identifyDocument(logger: IAutorestLogger, content: string): Promise<DocumentType>;

function toJSON(logger: IAutorestLogger, content: string): Promise<string>;

Programmatic API

Core Management

Version management and bootstrapping functionality for managing AutoRest core installations and extensions.

function getApplicationEntrypoint(
  logger: IAutorestLogger,
  requestedVersion?: string,
  minimumVersion?: string
): Promise<string | undefined>;

function initialize(
  logger: IAutorestLogger,
  requestedVersion?: string,
  minimumVersion?: string
): Promise<void>;

const AutoRest: Promise<IAutoRest>;

Core Management

Configuration System

Configuration and settings management for AutoRest operations, primarily through the programmatic API.

interface AutoRest {
  AddConfiguration(config: any): Promise<void>;
  Process(): Promise<GenerationResults>;
}

Configuration System

Types

Core Enums

enum Channel {
  Information = "information",
  Warning = "warning",
  Error = "error",
  Debug = "debug",
  Verbose = "verbose",
  Fatal = "fatal",
  Hint = "hint",
  File = "file",
  Configuration = "configuration",
  Protect = "protect"
}

enum DocumentType {
  OpenAPI2 = "OpenAPI2",
  OpenAPI3 = "OpenAPI3",
  LiterateConfiguration = "LiterateConfiguration",
  Unknown = "Unknown"
}

Core Interfaces

interface AutoRest {
  AddConfiguration(config: any): Promise<void>;
  Process(): Promise<GenerationResults>;
  // Additional methods from dynamically loaded core
}

interface GenerationResults {
  // Result structure from core processing
}

interface IFileSystem {
  // File system abstraction interface
}

interface Extension {
  name: string;
  version: string;
  location: string;
}

Re-exported Types

// Re-exported from autorest-core for convenience
interface Message {
  // Structure defined by @autorest/core
}

interface Artifact {
  // Structure defined by @autorest/core
}

interface GenerationResults {
  // Result structure from core processing
}

interface IFileSystem {
  // File system abstraction interface
}

// Utility function from @autorest/common
function color(text: string): string;