Просмотр исходного кода

fix: replace require() with ES6 imports to resolve build errors

- Replace require() with import in error-rule-detector.ts
- Replace require() with import in proxy/errors.ts
- Add TypeScript declaration file for safe-regex package

This fixes ESLint errors that were blocking production builds:
- @typescript-eslint/no-require-imports violations
- Missing type definitions for safe-regex

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
ding113 3 месяцев назад
Родитель
Сommit
bcd4608317
3 измененных файлов с 16 добавлено и 8 удалено
  1. 2 4
      src/app/v1/_lib/proxy/errors.ts
  2. 1 4
      src/lib/error-rule-detector.ts
  3. 13 0
      src/types/safe-regex.d.ts

+ 2 - 4
src/app/v1/_lib/proxy/errors.ts

@@ -6,6 +6,8 @@
  * 2. 智能截断:JSON 完整保存,文本限制 500 字符
  * 3. 可读性优先:纯文本格式化,便于排查问题
  */
+import { errorRuleDetector } from "@/lib/error-rule-detector";
+
 export class ProxyError extends Error {
   constructor(
     message: string,
@@ -165,10 +167,6 @@ export enum ErrorCategory {
 }
 
 export function isNonRetryableClientError(error: Error): boolean {
-  // 动态导入 errorRuleDetector 避免循环依赖
-  // 使用延迟加载确保初始化顺序正确
-  const { errorRuleDetector } = require("@/lib/error-rule-detector");
-
   // 提取错误消息
   let message = error.message;
 

+ 1 - 4
src/lib/error-rule-detector.ts

@@ -13,10 +13,7 @@
 import { getActiveErrorRules } from "@/repository/error-rules";
 import { logger } from "@/lib/logger";
 import { eventEmitter } from "@/lib/event-emitter";
-
-// safe-regex doesn't have TypeScript definitions, use require for dynamic import
-// eslint-disable-next-line @typescript-eslint/no-var-requires
-const safeRegex = require("safe-regex") as (pattern: string) => boolean;
+import safeRegex from "safe-regex";
 
 /**
  * 错误检测结果

+ 13 - 0
src/types/safe-regex.d.ts

@@ -0,0 +1,13 @@
+/**
+ * Type declaration for safe-regex package
+ * https://www.npmjs.com/package/safe-regex
+ */
+declare module "safe-regex" {
+  /**
+   * Detects potentially catastrophic exponential-time regular expressions.
+   * @param pattern - The regular expression pattern to test
+   * @returns true if the pattern is safe, false if it may cause ReDoS
+   */
+  function safeRegex(pattern: string | RegExp): boolean;
+  export default safeRegex;
+}