wormaworma
API 参考

配置对象

defineConfig 和 GeneratorConfig 的完整类型

defineConfig

function defineConfig(config: Config): Config;
function defineConfig(config: Promise<Config>): Promise<Config>;
function defineConfig(config: () => Config | Promise<Config>): Config | Promise<Config>;

Config

interface Config {
  /** 生成规则数组 */
  generator: GeneratorConfig[];
}

GeneratorConfig

interface GeneratorConfig {
  /** OpenAPI 文档地址(URL 或本地路径),支持 string[] 依次尝试 */
  input?: string | string[];

  /** 拉取 OpenAPI 文档时的请求选项 */
  fetchOptions?: FetchOptions;

  /** 排除生成的类型标识符列表,匹配的类型将直接引用而不生成 */
  externalTypes?: string[];

  /** 输出目录 */
  output?: string;

  /** 是否生成文档注释,默认 true */
  docComment?: boolean;

  /** 响应 MediaType,可设数组依次指向 */
  responseMediaType?: string | string[];

  /** 请求体 MediaType,可设数组依次指向 */
  bodyMediaType?: string | string[];

  /** 多文档时的自定义服务名称 */
  serverName?: string;

  /** 生成代码类型:'auto' | 'ts' | 'typescript' | 'module' | 'commonjs',默认 'auto' */
  type?: 'auto' | 'ts' | 'typescript' | 'module' | 'commonjs';

  /** 无 require 时默认设为 require,仅 nullable 字段生效 */
  defaultRequire?: boolean;

  /** 插件数组 */
  plugins?: ApiPlugin[];

  /** 性能配置 */
  performance?: PerformanceConfig;

  /** 过滤或转换生成的 API,返回修改后的 apiDescriptor */
  handleApi?: (apiDescriptor: ApiDescriptor) => ApiDescriptor | void | null | undefined;
}

FetchOptions

interface FetchOptions {
  headers?: Record<string, string>;
  /** 超时时间(毫秒) */
  timeout?: number;
  method?: MethodType;
  data?: RequestBody;
  params?: Record<string, any>;
  /** 为 true 时遇到非 2xx 不抛错,仍返回文本 */
  insecure?: boolean;
}

PerformanceConfig

性能设计详情请参阅 性能

interface PerformanceConfig {
  /** schema→TS worker 池策略:'auto' | number | false,默认 'auto' */
  workerPool?: 'auto' | number | false;
  /** transform 阶段并发上限,默认 auto */
  transformConcurrency?: number;
  /** 写盘并发数,默认 32 */
  writeConcurrency?: number;
  /** 是否对最终文件做 prettier 格式化,默认 true */
  formatFile?: boolean;
  /** 是否对输出做确定性排序,默认 true */
  deterministicSort?: boolean;
}

GenerateApiOptions

interface GenerateApiOptions {
  /** 强制重新生成,忽略缓存 */
  force?: boolean;
  /** 项目根目录 */
  projectPath?: string;
  /** 每个 generator 的生命周期进度回调 */
  onProgress?: (event: GeneratorProgressEvent) => void;
}

GeneratorProgressEvent 是一个区分联合类型,通过 phase 字段区分阶段:

phase说明附加字段
active开始处理index
progress处理中progress: number(0-100)、messagesource?
done生成成功resolvedInput?
skipped跳过(缓存命中)resolvedInput?
failed生成失败error: string

On this page