UNPKG

rspack-plugin-mock

Version:
113 lines (112 loc) 4.63 kB
import { a as MockWebsocketItem, c as MockHttpItem, h as ServerBuildOption, i as MockOptions, k as NextHandleFunction, m as MockServerPluginOptions, r as PathFilter, u as LogLevel, x as ResolvedRecordOptions } from "./index-BMMGM-eD.js"; import { Arrayable } from "@pengzhanbo/utils"; import { Compiler, RspackPluginInstance } from "@rspack/core"; import { Matcher } from "picomatch"; import EventEmitter from "node:events"; import { FSWatcher } from "chokidar"; import { CorsOptions } from "cors"; import { Server } from "node:http"; import { Http2SecureServer } from "node:http2"; //#region src/core/logger.d.ts interface Logger { debug: (msg: string, level?: boolean | LogLevel) => void; info: (msg: string, level?: boolean | LogLevel) => void; warn: (msg: string, level?: boolean | LogLevel) => void; error: (msg: string, level?: boolean | LogLevel) => void; } declare const logLevels: Record<LogLevel, number>; declare function createLogger(prefix: string, defaultLevel?: LogLevel): Logger; //#endregion //#region src/core/options.d.ts interface ResolvedCompilerOptions { alias: Record<string, Arrayable<false | string>>; proxies: PathFilter[]; wsProxies: PathFilter[]; plugins: RspackPluginInstance[]; context?: string; } type ResolvePluginOptions = Required<Omit<MockServerPluginOptions, "build">> & ResolvedCompilerOptions & { logger: Logger; build: false | ServerBuildOption; cors: false | CorsOptions; record: ResolvedRecordOptions; activeScene: string[]; }; //#endregion //#region src/compiler/mockCompiler.d.ts declare class MockCompiler extends EventEmitter { options: ResolvePluginOptions; cwd: string; mockWatcher!: FSWatcher; entryFile!: string; deps: string[]; isESM: boolean; private _mockData; private watchInfo?; compiler?: Compiler | null; constructor(options: ResolvePluginOptions); get mockData(): Record<string, MockOptions>; run(): Promise<void>; close(): void; updateAlias(alias: Record<string, false | string | (string | false)[]>): void; updateMockEntry(): Promise<void>; watchMockFiles(isMatch: Matcher): void; } //#endregion //#region src/compiler/processData.d.ts declare function processRawData(rawData: (readonly [any, string])[]): (MockHttpItem | MockWebsocketItem | MockOptions)[]; declare function processMockData(mockList: (MockHttpItem | MockWebsocketItem | MockOptions)[]): Record<string, MockOptions>; declare function sortByValidator(mocks: MockOptions): (MockHttpItem | MockWebsocketItem)[]; //#endregion //#region src/mockHttp/middleware.d.ts interface CreateMockMiddlewareOptions extends Pick<ResolvePluginOptions, "formidableOptions" | "cookiesOptions" | "bodyParserOptions" | "priority" | "record" | "replay" | "activeScene"> { proxies: PathFilter[]; logger: Logger; cors: false | CorsOptions; } /** * Create mock middleware * * 创建 Mock 中间件 * * @param compiler - Compiler instance / 编译器实例 * @param options - Middleware options / 中间件配置项 * @param options.formidableOptions - Formidable options / Formidable 配置项 * @param options.bodyParserOptions - Body parser options / 请求体解析配置项 * @param options.proxies - Proxy paths / 代理路径 * @param options.cookiesOptions - Cookies options / Cookies 配置项 * @param options.logger - Logger instance / 日志实例 * @param options.priority - Path matching priority / 路径匹配优先级 * @param options.cors - CORS options / CORS 配置项 * @param options.record - Record options / 录制配置项 * @param options.replay - Replay options / 回放配置项 * @param options.activeScene - Active scene / 活动场景 * * @returns Connect middleware function / Connect 中间件函数 */ declare function createMockMiddleware(compiler: MockCompiler, { formidableOptions, bodyParserOptions, proxies, cookiesOptions, logger, priority, cors: corsOptions, record, replay, activeScene }: CreateMockMiddlewareOptions): NextHandleFunction; //#endregion //#region src/mockWebsocket/server.d.ts interface MockSocketOptions { wsProxies: PathFilter[]; cookiesOptions: MockServerPluginOptions["cookiesOptions"]; logger: Logger; } declare function mockWebSocket(compiler: MockCompiler, httpServer: Server | Http2SecureServer | null, { wsProxies: proxies, cookiesOptions, logger }: MockSocketOptions): void; //#endregion export { processMockData as a, MockCompiler as c, createLogger as d, logLevels as f, createMockMiddleware as i, ResolvePluginOptions as l, mockWebSocket as n, processRawData as o, CreateMockMiddlewareOptions as r, sortByValidator as s, MockSocketOptions as t, Logger as u };