CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-autorest

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

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

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;

docs

cli-operations.md

configuration.md

core-management.md

index.md

programmatic-api.md

tile.json