cross-request-master

技术路线图

本文档记录 Cross Request Master 的技术改进计划,从当前”开源合格”状态提升到”优秀开源项目”。

当前状态 (v4.5.0)

已完成

短期目标 (v4.5.x - 下一个 minor 版本)

1. 代码质量改进

1.1 模块化重构 ✅ 已完成 (v4.5.0)

已解决的问题:

下一步计划(后续版本):

src/
├── core/
│   ├── transport.js       # Chrome 消息传递
│   ├── request.js         # 请求编排
│   └── response.js        # 响应处理
├── helpers/
│   ├── body-parser.js     # bodyToString, ensureJsonParsed (可导出)
│   ├── query-string.js    # buildQueryString (可导出)
│   ├── error-builder.js   # buildErrorResponse
│   └── url-resolver.js    # 相对 URL 解析
├── ui/
│   ├── curl-display.js    # cURL 弹窗
│   └── error-display.js   # 错误提示
├── adapters/
│   ├── yapi.js           # YApi 适配器
│   └── jquery.js         # jQuery 拦截
└── index.js              # 主入口,组装各模块

挑战(已解决):

已采用方案:

实际用时: 约 2 小时(快速重构)

1.2 消除重复代码 🔥 高优先级

当前问题:

改进计划:

// helpers/body-parser.js

/**
 * 智能解析响应体
 * @param {*} body - 响应体(可能是对象、字符串或标量)
 * @param {string} contentType - Content-Type 头
 * @returns {*} 解析后的数据
 */
function ensureJsonParsed(body, contentType) {
    // 统一的解析逻辑
}

/**
 * 将响应体转为字符串
 * @param {*} body - 响应体
 * @param {*} originalBody - 原始响应体(如需保留格式)
 * @returns {string}
 */
function bodyToString(body, originalBody = null) {
    // 如果提供了原始字符串,优先使用
    if (originalBody && typeof originalBody === 'string') {
        return originalBody;
    }
    // 否则转换
    // ...
}

时间估计: 1 周

1.3 保留原始响应体 🔶 中优先级

当前问题:

改进计划:

// background.js 中同时保留两种格式
return {
    status: response.status,
    statusText: response.statusText,
    headers: responseHeaders,
    body: responseBody,           // 原始字符串
    bodyParsed: parsedBody,       // 解析后的对象/标量
    ok: response.ok
};

// index.js 中使用
response.data = response.bodyParsed;  // YApi 使用解析后的
response.body = response.body;        // 保持原始字符串不变

时间估计: 3-5 天

2. 日志和错误处理规范化

2.1 统一日志规范 🔶 中优先级

当前问题:

改进计划:

// helpers/logger.js

const Logger = {
    levels: {
        DEBUG: 0,
        INFO: 1,
        WARN: 2,
        ERROR: 3
    },
    
    currentLevel: 1, // 默认 INFO
    
    debug(source, message, data) {
        if (this.currentLevel <= this.levels.DEBUG) {
            console.log(`[DEBUG][${source}] ${message}`, data);
        }
    },
    
    info(source, message, data) {
        if (this.currentLevel <= this.levels.INFO) {
            console.log(`[INFO][${source}] ${message}`, data);
        }
    },
    
    // 用户可见的错误(中文)
    userError(message) {
        console.error('[用户错误]', message);
        // 显示用户友好的错误提示
    },
    
    // 开发者错误(英文,包含堆栈)
    devError(source, message, error) {
        console.error(`[DEV ERROR][${source}] ${message}`, error);
    }
};

时间估计: 1 周

2.2 国际化 (i18n) 支持 🔷 低优先级

改进计划:

时间估计: 2 周

3. 自动化和 CI/CD

3.1 GitHub Actions CI 🔥 高优先级

改进计划:

# .github/workflows/ci.yml
name: CI

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
      - run: npm ci
      - run: npm run lint
      - run: npm run format:check
  
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
      - run: npm ci
      - run: npm test
      - uses: codecov/codecov-action@v3
  
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: zip -r extension.zip . -x "node_modules/*" ".*"
      - uses: actions/upload-artifact@v3
        with:
          name: extension
          path: extension.zip

时间估计: 3-5 天

3.2 自动化测试覆盖 🔥 高优先级

当前: 只有示例测试

目标覆盖率:

测试文件结构:

__tests__/
├── helpers/
│   ├── body-parser.test.js
│   ├── error-builder.test.js
│   └── url-resolver.test.js
├── core/
│   ├── transport.test.js
│   └── response.test.js
├── adapters/
│   └── yapi.test.js
└── integration/
    └── full-flow.test.js

时间估计: 2-3 周

4. 性能和可靠性

4.1 错误边界 🔶 中优先级

改进计划:

4.2 性能监控 🔷 低优先级

改进计划:

中期目标 (v5.0.x - 下一个 major 版本)

1. 架构升级

2. 功能扩展

3. UI 改进

长期目标 (v6.0+)

1. 生态系统

2. 企业功能

实施原则

向后兼容

渐进式改进

社区驱动

如何参与

选择任务

  1. 查看 GitHub Issues
  2. 找到标记为 good first issuehelp wanted 的任务
  3. 评论表达兴趣

提交改进

  1. 创建 issue 讨论方案
  2. 获得 maintainer 批准后开始工作
  3. 提交 PR 并请求 review

讨论路线图

版本发布节奏


最后更新: 2025-10-17
当前版本: v4.5.0
下一个版本: v4.6.0 (待定)


版本历史

v4.5.0 (2025-10-17) - 模块化重构

v4.4.14 (2025-10-17)

v4.4.13 (2025-10-17)