diff --git a/apps/app-mobile/src/api/index.ts b/apps/app-mobile/src/api/index.ts index 660a7dd..044406c 100644 --- a/apps/app-mobile/src/api/index.ts +++ b/apps/app-mobile/src/api/index.ts @@ -1,7 +1,7 @@ -import {HttpClient} from "@coding-flow/flow-core"; +import {HttpClient, resolveHttpTimeout} from "@coding-flow/flow-core"; import { message } from "antd"; -export const httpClient = new HttpClient(10000,{ +export const httpClient = new HttpClient(resolveHttpTimeout(),{ success:(msg:string)=>{ message.success(msg) }, diff --git a/apps/app-pc/src/api/index.ts b/apps/app-pc/src/api/index.ts index 660a7dd..044406c 100644 --- a/apps/app-pc/src/api/index.ts +++ b/apps/app-pc/src/api/index.ts @@ -1,7 +1,7 @@ -import {HttpClient} from "@coding-flow/flow-core"; +import {HttpClient, resolveHttpTimeout} from "@coding-flow/flow-core"; import { message } from "antd"; -export const httpClient = new HttpClient(10000,{ +export const httpClient = new HttpClient(resolveHttpTimeout(),{ success:(msg:string)=>{ message.success(msg) }, diff --git a/packages/flow-approval-presenter/CHANGELOG.md b/packages/flow-approval-presenter/CHANGELOG.md index ebd3139..7706a86 100644 --- a/packages/flow-approval-presenter/CHANGELOG.md +++ b/packages/flow-approval-presenter/CHANGELOG.md @@ -1,5 +1,13 @@ # @coding-flow/flow-approval-presenter +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + - @coding-flow/flow-types@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-approval-presenter/package.json b/packages/flow-approval-presenter/package.json index 775d976..3f56364 100644 --- a/packages/flow-approval-presenter/package.json +++ b/packages/flow-approval-presenter/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-approval-presenter", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine approval presenter framework ", "type": "module", "sideEffects": [ diff --git a/packages/flow-core/CHANGELOG.md b/packages/flow-core/CHANGELOG.md index b66288a..6528cf0 100644 --- a/packages/flow-core/CHANGELOG.md +++ b/packages/flow-core/CHANGELOG.md @@ -1,5 +1,14 @@ # @coding-flow/flow-core +## 0.2.0 + +### Minor Changes + +- feat: 接口请求超时时间支持通过 localStorage 动态配置,未配置时回退默认值(issue #211) + + - 新增 `resolveHttpTimeout()` / `FLOW_HTTP_TIMEOUT_KEY`,从 localStorage 读取超时配置 + - 各调用点(PC/移动端审批、设计器、示例应用)去除写死的 10000ms 硬编码 + ## 0.1.9 ## 0.1.8 diff --git a/packages/flow-core/package.json b/packages/flow-core/package.json index ff18191..80f0ad2 100644 --- a/packages/flow-core/package.json +++ b/packages/flow-core/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-core", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine core lib framework ", "type": "module", "sideEffects": [ diff --git a/packages/flow-core/src/http.ts b/packages/flow-core/src/http.ts index 0ae6d72..c2cdbab 100644 --- a/packages/flow-core/src/http.ts +++ b/packages/flow-core/src/http.ts @@ -8,6 +8,29 @@ export interface MessageBox { error: (msg: string) => void; } +/** + * 接口请求超时时间(毫秒)在 localStorage 中的配置键。 + * 未配置时使用默认值 {@link DEFAULT_HTTP_TIMEOUT}。 + */ +export const FLOW_HTTP_TIMEOUT_KEY = 'flow_http_timeout'; + +/** 默认接口请求超时时间(毫秒),未配置 localStorage 时生效。 */ +const DEFAULT_HTTP_TIMEOUT = 10000; + +/** + * 解析接口请求超时时间(毫秒)。 + * 优先读取 localStorage 中 {@link FLOW_HTTP_TIMEOUT_KEY} 对应的配置, + * 未配置或配置值非法(非正数)时回退到默认值。 + */ +export function resolveHttpTimeout(): number { + const raw = localStorage.getItem(FLOW_HTTP_TIMEOUT_KEY); + if (!raw) { + return DEFAULT_HTTP_TIMEOUT; + } + const value = Number(raw); + return Number.isFinite(value) && value > 0 ? value : DEFAULT_HTTP_TIMEOUT; +} + export type Response = { success: boolean; errCode?: string; diff --git a/packages/flow-core/tests/http.test.ts b/packages/flow-core/tests/http.test.ts new file mode 100644 index 0000000..d780c02 --- /dev/null +++ b/packages/flow-core/tests/http.test.ts @@ -0,0 +1,48 @@ +import {describe, expect, it, beforeEach, afterEach} from '@rstest/core'; +import {FLOW_HTTP_TIMEOUT_KEY, resolveHttpTimeout} from "@/http"; + +describe('resolveHttpTimeout', () => { + + beforeEach(() => { + localStorage.removeItem(FLOW_HTTP_TIMEOUT_KEY); + }); + + afterEach(() => { + localStorage.removeItem(FLOW_HTTP_TIMEOUT_KEY); + }); + + it('未配置 localStorage 时返回默认值 10000', () => { + const timeout = resolveHttpTimeout(); + expect(timeout).toEqual(10000); + }); + + it('已配置合法正整数时返回对应超时时间', () => { + localStorage.setItem(FLOW_HTTP_TIMEOUT_KEY, '30000'); + const timeout = resolveHttpTimeout(); + expect(timeout).toEqual(30000); + }); + + it('已配置 "0" 时视为非法,回退默认值', () => { + localStorage.setItem(FLOW_HTTP_TIMEOUT_KEY, '0'); + const timeout = resolveHttpTimeout(); + expect(timeout).toEqual(10000); + }); + + it('已配置负整数时视为非法,回退默认值', () => { + localStorage.setItem(FLOW_HTTP_TIMEOUT_KEY, '-5000'); + const timeout = resolveHttpTimeout(); + expect(timeout).toEqual(10000); + }); + + it('已配置非数字时视为非法,回退默认值', () => { + localStorage.setItem(FLOW_HTTP_TIMEOUT_KEY, 'abc'); + const timeout = resolveHttpTimeout(); + expect(timeout).toEqual(10000); + }); + + it('已配置小数时按原值返回', () => { + localStorage.setItem(FLOW_HTTP_TIMEOUT_KEY, '2500.5'); + const timeout = resolveHttpTimeout(); + expect(timeout).toEqual(2500.5); + }); +}); \ No newline at end of file diff --git a/packages/flow-design/CHANGELOG.md b/packages/flow-design/CHANGELOG.md index 4cf041b..5ee22e5 100644 --- a/packages/flow-design/CHANGELOG.md +++ b/packages/flow-design/CHANGELOG.md @@ -1,5 +1,15 @@ # @coding-flow/flow-design +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + - @coding-flow/flow-icons@0.2.0 + - @coding-flow/flow-pc-ui@0.2.0 + - @coding-flow/flow-types@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-design/package.json b/packages/flow-design/package.json index fa6737f..62a783f 100644 --- a/packages/flow-design/package.json +++ b/packages/flow-design/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-design", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine design components ", "type": "module", "sideEffects": [ diff --git a/packages/flow-design/src/api/index.ts b/packages/flow-design/src/api/index.ts index 660a7dd..044406c 100644 --- a/packages/flow-design/src/api/index.ts +++ b/packages/flow-design/src/api/index.ts @@ -1,7 +1,7 @@ -import {HttpClient} from "@coding-flow/flow-core"; +import {HttpClient, resolveHttpTimeout} from "@coding-flow/flow-core"; import { message } from "antd"; -export const httpClient = new HttpClient(10000,{ +export const httpClient = new HttpClient(resolveHttpTimeout(),{ success:(msg:string)=>{ message.success(msg) }, diff --git a/packages/flow-icons/CHANGELOG.md b/packages/flow-icons/CHANGELOG.md index e2ecb35..ddf04c4 100644 --- a/packages/flow-icons/CHANGELOG.md +++ b/packages/flow-icons/CHANGELOG.md @@ -1,5 +1,12 @@ # @coding-flow/flow-icons +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-icons/package.json b/packages/flow-icons/package.json index 0f5dbe2..65f0805 100644 --- a/packages/flow-icons/package.json +++ b/packages/flow-icons/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-icons", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine icons ", "type": "module", "sideEffects": [ diff --git a/packages/flow-mobile/flow-mobile-approval/CHANGELOG.md b/packages/flow-mobile/flow-mobile-approval/CHANGELOG.md index 66cb1da..edf8ef1 100644 --- a/packages/flow-mobile/flow-mobile-approval/CHANGELOG.md +++ b/packages/flow-mobile/flow-mobile-approval/CHANGELOG.md @@ -1,5 +1,17 @@ # @coding-flow/flow-mobile-approval +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + - @coding-flow/flow-approval-presenter@0.2.0 + - @coding-flow/flow-icons@0.2.0 + - @coding-flow/flow-mobile-form@0.2.0 + - @coding-flow/flow-mobile-ui@0.2.0 + - @coding-flow/flow-types@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-mobile/flow-mobile-approval/package.json b/packages/flow-mobile/flow-mobile-approval/package.json index 26c4107..a3d59d6 100644 --- a/packages/flow-mobile/flow-mobile-approval/package.json +++ b/packages/flow-mobile/flow-mobile-approval/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-mobile-approval", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine pc mobile approval components", "type": "module", "sideEffects": [ diff --git a/packages/flow-mobile/flow-mobile-approval/src/api/index.ts b/packages/flow-mobile/flow-mobile-approval/src/api/index.ts index 660a7dd..044406c 100644 --- a/packages/flow-mobile/flow-mobile-approval/src/api/index.ts +++ b/packages/flow-mobile/flow-mobile-approval/src/api/index.ts @@ -1,7 +1,7 @@ -import {HttpClient} from "@coding-flow/flow-core"; +import {HttpClient, resolveHttpTimeout} from "@coding-flow/flow-core"; import { message } from "antd"; -export const httpClient = new HttpClient(10000,{ +export const httpClient = new HttpClient(resolveHttpTimeout(),{ success:(msg:string)=>{ message.success(msg) }, diff --git a/packages/flow-mobile/flow-mobile-form/CHANGELOG.md b/packages/flow-mobile/flow-mobile-form/CHANGELOG.md index 76d8c2b..4fa7d43 100644 --- a/packages/flow-mobile/flow-mobile-form/CHANGELOG.md +++ b/packages/flow-mobile/flow-mobile-form/CHANGELOG.md @@ -1,5 +1,13 @@ # @coding-flow/flow-mobile-form +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + - @coding-flow/flow-types@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-mobile/flow-mobile-form/package.json b/packages/flow-mobile/flow-mobile-form/package.json index c853433..70941c6 100644 --- a/packages/flow-mobile/flow-mobile-form/package.json +++ b/packages/flow-mobile/flow-mobile-form/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-mobile-form", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine mobile form engine", "type": "module", "sideEffects": [ diff --git a/packages/flow-mobile/flow-mobile-ui/CHANGELOG.md b/packages/flow-mobile/flow-mobile-ui/CHANGELOG.md index a03988b..66d29a9 100644 --- a/packages/flow-mobile/flow-mobile-ui/CHANGELOG.md +++ b/packages/flow-mobile/flow-mobile-ui/CHANGELOG.md @@ -1,5 +1,12 @@ # @coding-flow/flow-mobile-ui +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-mobile/flow-mobile-ui/package.json b/packages/flow-mobile/flow-mobile-ui/package.json index 0ffc6a6..a6203c1 100644 --- a/packages/flow-mobile/flow-mobile-ui/package.json +++ b/packages/flow-mobile/flow-mobile-ui/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-mobile-ui", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine mobile ui components", "type": "module", "sideEffects": [ diff --git a/packages/flow-pc/flow-pc-approval/CHANGELOG.md b/packages/flow-pc/flow-pc-approval/CHANGELOG.md index 83b9eb7..817d855 100644 --- a/packages/flow-pc/flow-pc-approval/CHANGELOG.md +++ b/packages/flow-pc/flow-pc-approval/CHANGELOG.md @@ -1,5 +1,17 @@ # @coding-flow/flow-pc-approval +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + - @coding-flow/flow-approval-presenter@0.2.0 + - @coding-flow/flow-icons@0.2.0 + - @coding-flow/flow-pc-form@0.2.0 + - @coding-flow/flow-pc-ui@0.2.0 + - @coding-flow/flow-types@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-pc/flow-pc-approval/package.json b/packages/flow-pc/flow-pc-approval/package.json index 509f94a..443d4f2 100644 --- a/packages/flow-pc/flow-pc-approval/package.json +++ b/packages/flow-pc/flow-pc-approval/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-pc-approval", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine pc form approval components", "type": "module", "sideEffects": [ diff --git a/packages/flow-pc/flow-pc-approval/src/api/index.ts b/packages/flow-pc/flow-pc-approval/src/api/index.ts index 660a7dd..044406c 100644 --- a/packages/flow-pc/flow-pc-approval/src/api/index.ts +++ b/packages/flow-pc/flow-pc-approval/src/api/index.ts @@ -1,7 +1,7 @@ -import {HttpClient} from "@coding-flow/flow-core"; +import {HttpClient, resolveHttpTimeout} from "@coding-flow/flow-core"; import { message } from "antd"; -export const httpClient = new HttpClient(10000,{ +export const httpClient = new HttpClient(resolveHttpTimeout(),{ success:(msg:string)=>{ message.success(msg) }, diff --git a/packages/flow-pc/flow-pc-form/CHANGELOG.md b/packages/flow-pc/flow-pc-form/CHANGELOG.md index 6e3b66a..a66dd65 100644 --- a/packages/flow-pc/flow-pc-form/CHANGELOG.md +++ b/packages/flow-pc/flow-pc-form/CHANGELOG.md @@ -1,5 +1,13 @@ # @coding-flow/flow-pc-form +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + - @coding-flow/flow-types@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-pc/flow-pc-form/package.json b/packages/flow-pc/flow-pc-form/package.json index 30dfeeb..9a0c2ad 100644 --- a/packages/flow-pc/flow-pc-form/package.json +++ b/packages/flow-pc/flow-pc-form/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-pc-form", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine pc form engine", "type": "module", "sideEffects": [ diff --git a/packages/flow-pc/flow-pc-ui/CHANGELOG.md b/packages/flow-pc/flow-pc-ui/CHANGELOG.md index bbe30e2..d852cb7 100644 --- a/packages/flow-pc/flow-pc-ui/CHANGELOG.md +++ b/packages/flow-pc/flow-pc-ui/CHANGELOG.md @@ -1,5 +1,12 @@ # @coding-flow/flow-pc-ui +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-pc/flow-pc-ui/package.json b/packages/flow-pc/flow-pc-ui/package.json index dacfbf3..bf926d5 100644 --- a/packages/flow-pc/flow-pc-ui/package.json +++ b/packages/flow-pc/flow-pc-ui/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-pc-ui", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine pc ui components", "type": "module", "sideEffects": [ diff --git a/packages/flow-types/CHANGELOG.md b/packages/flow-types/CHANGELOG.md index cb26988..f38efc6 100644 --- a/packages/flow-types/CHANGELOG.md +++ b/packages/flow-types/CHANGELOG.md @@ -1,5 +1,12 @@ # @coding-flow/flow-types +## 0.2.0 + +### Patch Changes + +- Updated dependencies + - @coding-flow/flow-core@0.2.0 + ## 0.1.9 ### Patch Changes diff --git a/packages/flow-types/package.json b/packages/flow-types/package.json index 1ae2dfe..641797d 100644 --- a/packages/flow-types/package.json +++ b/packages/flow-types/package.json @@ -1,6 +1,6 @@ { "name": "@coding-flow/flow-types", - "version": "0.1.9", + "version": "0.2.0", "description": "flow-engine types", "type": "module", "sideEffects": [