fix(eslint): reduce warnings in GitHub Actions deployment

- Disable formatting rules (handled by Prettier)
- Relaxed strict Vue/JS rules for demo code compatibility
- Fix syntax errors in ApiPlayground and VoiceCloningDemo
- Fix duplicate else-if condition in ApiPlayground
- Fix Promise executor async pattern in AutoregressiveAudioDemo
- Add TypeScript file support to ESLint config

Warnings reduced from 295 to 251 problems.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
sanbuphy
2026-02-18 17:38:10 +08:00
parent 8b01686e68
commit 0eba9e87e9
456 changed files with 28450 additions and 9677 deletions
@@ -23,11 +23,21 @@
</button>
</div>
<div class="tool-detail" v-if="currentTool">
<div
v-if="currentTool"
class="tool-detail"
>
<div class="tool-header">
<div class="tool-title">{{ currentTool.name }}</div>
<div class="tool-title">
{{ currentTool.name }}
</div>
<div class="tool-tags">
<span class="tag" :class="tag.class" v-for="tag in currentTool.tags" :key="tag.text">
<span
v-for="tag in currentTool.tags"
:key="tag.text"
class="tag"
:class="tag.class"
>
{{ tag.text }}
</span>
</div>
@@ -40,7 +50,11 @@
<div class="feature-section">
<h4>核心特性</h4>
<div class="feature-list">
<div v-for="(feature, idx) in currentTool.features" :key="idx" class="feature-item">
<div
v-for="(feature, idx) in currentTool.features"
:key="idx"
class="feature-item"
>
<span class="feature-icon"></span>
<span class="feature-text">{{ feature }}</span>
</div>
@@ -57,9 +71,17 @@
<div class="tools-section">
<h4>🔧 推荐工具</h4>
<div class="tools-grid">
<div v-for="(rec, idx) in currentTool.recommendations" :key="idx" class="tool-card">
<div class="rec-name">{{ rec.name }}</div>
<div class="rec-desc">{{ rec.description }}</div>
<div
v-for="(rec, idx) in currentTool.recommendations"
:key="idx"
class="tool-card"
>
<div class="rec-name">
{{ rec.name }}
</div>
<div class="rec-desc">
{{ rec.description }}
</div>
</div>
</div>
</div>
@@ -28,7 +28,10 @@
</div>
<!-- 错误示范 -->
<div v-if="selectedTab === 'bad'" class="comparison bad">
<div
v-if="selectedTab === 'bad'"
class="comparison bad"
>
<div class="response-preview">
<div class="status-line bad">
<span>HTTP/1.1</span>
@@ -65,7 +68,10 @@
</div>
<!-- 正确示范 -->
<div v-if="selectedTab === 'good'" class="comparison good">
<div
v-if="selectedTab === 'good'"
class="comparison good"
>
<div class="response-preview">
<div class="status-line">
<span>HTTP/1.1</span>
@@ -105,7 +111,11 @@
<div class="error-codes">
<h4>错误码体系</h4>
<div class="code-list">
<div v-for="item in errorCodeItems" :key="item.code" class="code-item">
<div
v-for="item in errorCodeItems"
:key="item.code"
class="code-item"
>
<span class="code-badge">{{ item.code }}</span>
<span class="code-desc">{{ item.desc }}</span>
</div>
@@ -114,7 +114,7 @@ const methods = [
{ product_id: 'P001', quantity: 2 },
{ product_id: 'P002', quantity: 1 }
],
shipping_address: {...}
shipping_address: { /* ... */ }
}
}
]
@@ -2,12 +2,16 @@
<div class="demo-container">
<div class="demo-header">
<h4>HTTP 请求结构解析</h4>
<p class="hint">详解 HTTP 请求的组成部分</p>
<p class="hint">
详解 HTTP 请求的组成部分
</p>
</div>
<div class="demo-content">
<div class="structure-box">
<div class="section request-line">
<div class="label">请求行</div>
<div class="label">
请求行
</div>
<div class="content">
<code>GET /api/users/123 HTTP/1.1</code>
</div>
@@ -17,24 +21,32 @@
</div>
<div class="section headers">
<div class="label">请求头</div>
<div class="label">
请求头
</div>
<div class="content header-list">
<div><code>Host: api.example.com</code></div>
<div><code>Content-Type: application/json</code></div>
<div><code>Authorization: Bearer token123</code></div>
</div>
<div class="explain">元信息域名数据格式认证等</div>
<div class="explain">
元信息域名数据格式认证等
</div>
</div>
<div class="section body">
<div class="label">请求体 (可选)</div>
<div class="label">
请求体 (可选)
</div>
<div class="content">
<pre>{
"name": "张三",
"email": "zhangsan@example.com"
}</pre>
</div>
<div class="explain">POST/PUT 请求携带的数据</div>
<div class="explain">
POST/PUT 请求携带的数据
</div>
</div>
</div>
</div>
@@ -2,26 +2,34 @@
<div class="demo-container">
<div class="demo-header">
<h4>RESTful 资源类比</h4>
<p class="hint">通过生活中的类比理解 RESTful 资源概念</p>
<p class="hint">
通过生活中的类比理解 RESTful 资源概念
</p>
</div>
<div class="demo-content">
<div class="analogy-box">
<div class="analogy-item">
<div class="icon">📚</div>
<div class="icon">
📚
</div>
<div class="text">
<strong>资源 = 图书</strong>
<p>每本书有唯一的 ISBN资源标识</p>
</div>
</div>
<div class="analogy-item">
<div class="icon">🏪</div>
<div class="icon">
🏪
</div>
<div class="text">
<strong>URL = 书架位置</strong>
<p>/library/books/123 表示第 123 号书</p>
</div>
</div>
<div class="analogy-item">
<div class="icon">📝</div>
<div class="icon">
📝
</div>
<div class="text">
<strong>HTTP 方法 = 操作</strong>
<p>GET(查看)POST(借书)PUT(修改)DELETE(还书)</p>
@@ -26,7 +26,10 @@
<div class="response-header">
<div class="status-line">
<span class="http-version">HTTP/1.1</span>
<span class="status-code" :class="getStatusClass(currentResponse.status)">{{ currentResponse.status }}</span>
<span
class="status-code"
:class="getStatusClass(currentResponse.status)"
>{{ currentResponse.status }}</span>
<span class="status-text">{{ currentResponse.statusText }}</span>
</div>
</div>
@@ -53,12 +56,18 @@
<div class="field-descriptions">
<h4>字段说明</h4>
<div class="field-list">
<div v-for="field in currentResponse.fields" :key="field.name" class="field-item">
<div
v-for="field in currentResponse.fields"
:key="field.name"
class="field-item"
>
<div class="field-name">
<code>{{ field.name }}</code>
<span class="field-type">{{ field.type }}</span>
</div>
<div class="field-desc">{{ field.description }}</div>
<div class="field-desc">
{{ field.description }}
</div>
</div>
</div>
</div>
@@ -1,7 +1,9 @@
<template>
<div class="restful-design-demo">
<div class="header">
<div class="title">RESTful API 设计核心原则</div>
<div class="title">
RESTful API 设计核心原则
</div>
<div class="subtitle">
RESTRepresentational State Transfer是一种架构风格让接口设计像自然资源一样直观
</div>
@@ -15,9 +17,15 @@
:class="{ active: selectedPrinciple === principle.id }"
@click="selectedPrinciple = principle.id"
>
<div class="principle-icon">{{ principle.icon }}</div>
<div class="principle-name">{{ principle.name }}</div>
<div class="principle-brief">{{ principle.brief }}</div>
<div class="principle-icon">
{{ principle.icon }}
</div>
<div class="principle-name">
{{ principle.name }}
</div>
<div class="principle-brief">
{{ principle.brief }}
</div>
</div>
</div>
@@ -37,11 +45,15 @@
<h4>对比示例</h4>
<div class="code-comparison">
<div class="code-block bad">
<div class="code-label">传统方式不推荐</div>
<div class="code-label">
传统方式不推荐
</div>
<pre><code>{{ activePrinciple.badExample }}</code></pre>
</div>
<div class="code-block good">
<div class="code-label">RESTful 方式推荐</div>
<div class="code-label">
RESTful 方式推荐
</div>
<pre><code>{{ activePrinciple.goodExample }}</code></pre>
</div>
</div>
@@ -50,7 +62,12 @@
<div class="tips">
<h4>设计要点</h4>
<ul>
<li v-for="(tip, index) in activePrinciple.tips" :key="index">{{ tip }}</li>
<li
v-for="(tip, index) in activePrinciple.tips"
:key="index"
>
{{ tip }}
</li>
</ul>
</div>
</div>
@@ -23,7 +23,10 @@
</button>
</div>
<div class="status-codes" v-if="filteredCodes.length > 0">
<div
v-if="filteredCodes.length > 0"
class="status-codes"
>
<div
v-for="code in filteredCodes"
:key="code.number"
@@ -32,12 +35,18 @@
@click="toggleExpand(code.number)"
>
<div class="status-header">
<span class="status-number" :class="getCategoryClass(code.number)">{{ code.number }}</span>
<span
class="status-number"
:class="getCategoryClass(code.number)"
>{{ code.number }}</span>
<span class="status-name">{{ code.name }}</span>
<span class="expand-icon">{{ expandedCode === code.number ? '▼' : '▶' }}</span>
</div>
<div class="status-detail" v-show="expandedCode === code.number">
<div
v-show="expandedCode === code.number"
class="status-detail"
>
<div class="detail-section">
<h4>💡 含义解释</h4>
<p>{{ code.description }}</p>
@@ -46,15 +55,26 @@
<div class="detail-section">
<h4>📝 使用场景</h4>
<ul>
<li v-for="(scenario, idx) in code.scenarios" :key="idx">{{ scenario }}</li>
<li
v-for="(scenario, idx) in code.scenarios"
:key="idx"
>
{{ scenario }}
</li>
</ul>
</div>
<div class="detail-section" v-if="code.example">
<div
v-if="code.example"
class="detail-section"
>
<h4>💻 示例代码</h4>
<div class="code-example">
<div class="code-request">
<span class="method-badge" :class="getCategoryClass(code.number)">{{ code.example.method }}</span>
<span
class="method-badge"
:class="getCategoryClass(code.number)"
>{{ code.example.method }}</span>
<code>{{ code.example.path }}</code>
</div>
<div class="code-response">
@@ -19,19 +19,35 @@
@click="selectedStrategy = strategy.id"
>
<div class="strategy-header">
<div class="strategy-name">{{ strategy.name }}</div>
<div class="strategy-name">
{{ strategy.name }}
</div>
<div class="strategy-stars">
<span v-for="n in strategy.stars" :key="n" class="star"></span>
<span
v-for="n in strategy.stars"
:key="n"
class="star"
></span>
</div>
</div>
<div class="strategy-example">{{ strategy.example }}</div>
<div class="strategy-example">
{{ strategy.example }}
</div>
</div>
</div>
<div class="strategy-detail" v-if="currentStrategy">
<div
v-if="currentStrategy"
class="strategy-detail"
>
<div class="detail-header">
<div class="detail-title">{{ currentStrategy.name }}</div>
<div class="detail-recommendation" :class="currentStrategy.level">
<div class="detail-title">
{{ currentStrategy.name }}
</div>
<div
class="detail-recommendation"
:class="currentStrategy.level"
>
{{ currentStrategy.level === 'high' ? '强烈推荐' : currentStrategy.level === 'medium' ? '可以使用' : '不推荐' }}
</div>
</div>
@@ -40,14 +56,24 @@
<div class="detail-section">
<h4> 优点</h4>
<ul>
<li v-for="(pro, idx) in currentStrategy.pros" :key="idx">{{ pro }}</li>
<li
v-for="(pro, idx) in currentStrategy.pros"
:key="idx"
>
{{ pro }}
</li>
</ul>
</div>
<div class="detail-section">
<h4> 缺点</h4>
<ul>
<li v-for="(con, idx) in currentStrategy.cons" :key="idx">{{ con }}</li>
<li
v-for="(con, idx) in currentStrategy.cons"
:key="idx"
>
{{ con }}
</li>
</ul>
</div>
</div>
@@ -55,9 +81,13 @@
<div class="detail-section example">
<h4>💻 实现示例</h4>
<div class="code-box">
<div class="code-header">Request</div>
<div class="code-header">
Request
</div>
<pre><code>{{ currentStrategy.codeExample.request }}</code></pre>
<div class="code-header">Response Headers</div>
<div class="code-header">
Response Headers
</div>
<pre><code>{{ currentStrategy.codeExample.response }}</code></pre>
</div>
</div>
@@ -65,7 +95,12 @@
<div class="detail-section tips">
<h4>💡 最佳实践</h4>
<ul>
<li v-for="(tip, idx) in currentStrategy.tips" :key="idx">{{ tip }}</li>
<li
v-for="(tip, idx) in currentStrategy.tips"
:key="idx"
>
{{ tip }}
</li>
</ul>
</div>
</div>