erest
    Preparing search index...

    Class ERest<T, Raw, State>

    Easy rest api helper

    Type Parameters

    • T = DEFAULT_HANDLER
    • Raw = unknown
    • State extends Record<string, unknown> = Record<string, unknown>
    Index

    Constructors

    • Type Parameters

      • T = DEFAULT_HANDLER
      • Raw = unknown
      • State extends Record<string, unknown> = Record<string, unknown>

      Parameters

      Returns ERest<T, Raw, State>

      推荐使用子包工厂 createERest()(如 @erest/express / @erest/koa / @erest/leizmweb 导出的 createERest),以在构造时锁定 Raw 泛型,让 registerTyped handler 的 reply.raw 自动强类型。裸 new ERest() 在过渡期保留,Raw 默认 unknown, reply.raw 需手动断言。

    Properties

    shareTestData?: unknown
    utils: __module = utils

    Accessors

    • get errors(): ErrorManager

      错误列表

      Returns ErrorManager

    • get schema(): {
          check: (name: string, value: unknown) => boolean;
          get: (
              name: string,
          ) =>
              | ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>
              | undefined;
          has: (name: string) => boolean;
          register: (name: string, schema: ZodType) => void;
      }

      Schema 管理器

      Returns {
          check: (name: string, value: unknown) => boolean;
          get: (
              name: string,
          ) =>
              | ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>
              | undefined;
          has: (name: string) => boolean;
          register: (name: string, schema: ZodType) => void;
      }

    • get test(): IAPITest

      测试实例

      Returns IAPITest

    • get type(): {
          get: (
              name: string,
          ) =>
              | ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>
              | undefined;
          has: (name: string) => boolean;
          register: (name: string, schema: ZodType) => ERest<T>;
          value: (
              type: string,
              input: unknown,
              params?: unknown,
              format?: boolean,
          ) => { message: string; ok: boolean; value: unknown };
      }

      类型管理器

      Returns {
          get: (
              name: string,
          ) =>
              | ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>
              | undefined;
          has: (name: string) => boolean;
          register: (name: string, schema: ZodType) => ERest<T>;
          value: (
              type: string,
              input: unknown,
              params?: unknown,
              format?: boolean,
          ) => { message: string; ok: boolean; value: unknown };
      }

    Methods

    • 注册文档生成组件

      Parameters

      • name: string
      • plugin: IDocGeneratePlugin

      Returns void

    • 设置全局 After Hook

      Parameters

      • fn: T

      Returns void

    • 设置全局 Before Hook

      Parameters

      • fn: T

      Returns void

    • 统一绑定 API 到应用(推荐使用) 支持 Express、Koa 和 @leizm/web 框架

      Parameters

      • options: { adapter: FrameworkAdapter<T>; app?: unknown; router?: unknown }

        绑定选项

        • adapter: FrameworkAdapter<T>

          框架适配器实例(由 @erest/express / @erest/koa / @erest/leizmweb 子包提供,或用户自定义)

        • Optionalapp?: unknown

          应用实例

        • Optionalrouter?: unknown

          路由实例(非 forceGroup 模式)或路由构造函数(forceGroup 模式)

      Returns void

    • 获取Swagger信息

      Returns unknown

    • 生成文档

      Parameters

      • savePath: string = ...

        文档保存路径

      • onExit: boolean = true

        是否等待程序退出再保存

      Returns void

    • Internal

      文档生成器受控快照

      Returns {
          apis: Map<string, API<T, Raw, Record<string, unknown>>>;
          docsOptions: IDocOptions;
          groupInfo: Record<string, IGroupInfo<T>>;
          groups: Record<string, string>;
          info: IApiOptionInfo;
          schema: {
              check: (name: string, value: unknown) => boolean;
              get: (
                  name: string,
              ) =>
                  | ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>
                  | undefined;
              has: (name: string) => boolean;
              register: (name: string, schema: ZodType) => void;
          };
      }

    • Internal

      错误工厂(adapter/params/api 用,替代 privateInfo 反射)

      Returns {
          internalError: (msg: string) => Error;
          invalidParameter: (msg: string) => Error;
          missingParameter: (msg: string) => Error;
      }

    • Internal

      分组表(api.init 校验分组存在性用)

      Returns Record<string, string>

    • Internal

      mock handler(api.init 用)

      Returns ((data: unknown) => T) | undefined

    • Internal

      hooks 是否非空(零开销裁剪判断)

      Returns boolean

    • 初始化测试系统

      Parameters

      • app: unknown

        APP或者serve实例,用于初始化测试 HTTP 服务

      • testPath: string = ...

        测试文件路径

      • docPath: string = ...

        输出文件路径

      Returns void

    • 设置文档格式化函数

      Parameters

      • fn: (out: unknown) => unknown

      Returns void

    • 设置文档格式化函数

      Parameters

      • fn: IDocWritter

      Returns void

    • 设置测试格式化函数

      Parameters

      • fn: (out: unknown) => [Error | null, unknown]

      Returns void

    • Parameters

      • fn: (data: unknown) => T

      Returns void

    • 注册全局响应信封包装器。

      注册后,registerTyped 的 handler 进入「return 模式」:handler 只 return data, 框架在 dispatcher 层用 successEnveloper 包装写入响应;抛错用 errorEnveloper 包装。 未注册时维持 v3.1 行为(handler 调 ctx.reply 写响应)。

      可选 testUnwrapper:供测试脚手架(test.success/error)拆解信封(便捷入口,等价 setFormatOutput)。

      Parameters

      • envelopers: {
            error: (err: unknown, ctx: Context) => { body: unknown; status: number };
            success: (data: unknown, ctx: Context) => unknown;
            testUnwrapper?: (out: unknown) => [Error | null, unknown];
        }

      Returns void