Files
Genarrative/src/services/platform-entry/platformSettingsClient.ts
T
kdletters 9c9c8f468a 恢复平台个人页并阻断旧业务回流
恢复创作、项目、我的平台侧栏与现役搜索
恢复全宽个人页及资料编辑、充值兑换、社区反馈和 API Key 入口
迁移平台资料、钱包和设置客户端并移除旧创作依赖
新增 Vite 与 ESLint 退役模块门禁并补齐界面和搜索测试
同步旧创作退役方案、平台入口决策与踩坑记录
2026-07-18 17:29:06 +08:00

60 lines
1.5 KiB
TypeScript

import type { RuntimeSettings } from '../../../packages/shared/src/contracts/runtime';
import {
type ApiRequestOptions,
type ApiRetryOptions,
requestJson,
} from '../apiClient';
const PLATFORM_SETTINGS_API_PATH = '/api/runtime/settings';
const PLATFORM_SETTINGS_READ_RETRY: ApiRetryOptions = {
maxRetries: 1,
baseDelayMs: 180,
maxDelayMs: 480,
};
const PLATFORM_SETTINGS_WRITE_RETRY: ApiRetryOptions = {
maxRetries: 1,
baseDelayMs: 240,
maxDelayMs: 640,
retryUnsafeMethods: true,
};
type PlatformSettingsRequestOptions = ApiRequestOptions & {
signal?: AbortSignal;
};
export function getPlatformRuntimeSettings(
options: PlatformSettingsRequestOptions = {},
) {
const { signal, ...requestOptions } = options;
return requestJson<RuntimeSettings>(
PLATFORM_SETTINGS_API_PATH,
{ method: 'GET', signal },
'读取设置失败',
{
...requestOptions,
retry: requestOptions.retry ?? PLATFORM_SETTINGS_READ_RETRY,
},
);
}
export function putPlatformRuntimeSettings(
settings: RuntimeSettings,
options: PlatformSettingsRequestOptions = {},
) {
const { signal, ...requestOptions } = options;
return requestJson<RuntimeSettings>(
PLATFORM_SETTINGS_API_PATH,
{
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(settings),
signal,
},
'保存设置失败',
{
...requestOptions,
retry: requestOptions.retry ?? PLATFORM_SETTINGS_WRITE_RETRY,
},
);
}