diff --git a/apps/backend/src/services/admin/platform-config/cloudtentacles.js b/apps/backend/src/services/admin/platform-config/cloudtentacles.ts similarity index 82% rename from apps/backend/src/services/admin/platform-config/cloudtentacles.js rename to apps/backend/src/services/admin/platform-config/cloudtentacles.ts index da2a26bf..d61d7aa4 100644 --- a/apps/backend/src/services/admin/platform-config/cloudtentacles.js +++ b/apps/backend/src/services/admin/platform-config/cloudtentacles.ts @@ -1,5 +1,3 @@ -// @ts-check - import { getCloudtentaclesSourceByKey } from "../../platforms/cloudtentacles/source-config-service.js"; import { getCloudtentaclesSessionStateByKey } from "../../platforms/cloudtentacles/session-state-service.js"; import { @@ -10,18 +8,18 @@ import { maskPhone, maskSecret } from "./mappers.js"; const DEFAULT_CLOUDTENTACLES_BASE_URL = "https://123.207.217.176"; -function _resolveSourceKey(payload = {}) { +type JsonObject = Record + +function _resolveSourceKey(payload: JsonObject = {}) { return String(payload.sourceKey || "").trim() || "default"; } export function resolveAdminCloudtentaclesCredentialPayload( - payload = {}, - options = {} + payload: JsonObject = {}, + options: JsonObject = {} ) { const sourceKey = _resolveSourceKey(payload); - const savedSource = /** @type {Record} */ ( - options.savedSource || getCloudtentaclesSourceByKey(sourceKey) || {} - ); + const savedSource = options.savedSource || getCloudtentaclesSourceByKey(sourceKey) || {}; const defaultBaseUrl = String( options.defaultBaseUrl || DEFAULT_CLOUDTENTACLES_BASE_URL ).trim(); @@ -42,18 +40,14 @@ export function resolveAdminCloudtentaclesCredentialPayload( } export function resolveAdminCloudtentaclesSessionPayload( - payload = {}, - options = {} + payload: JsonObject = {}, + options: JsonObject = {} ) { const sourceKey = _resolveSourceKey(payload); - const savedSource = /** @type {Record} */ ( - options.savedSource || getCloudtentaclesSourceByKey(sourceKey) || {} - ); - const persistedSession = /** @type {Record} */ ( - options.persistedSession || - getCloudtentaclesSessionStateByKey(sourceKey) || - {} - ); + const savedSource = options.savedSource || getCloudtentaclesSourceByKey(sourceKey) || {}; + const persistedSession = options.persistedSession || + getCloudtentaclesSessionStateByKey(sourceKey) || + {}; return resolveCloudtentaclesAdminContext(payload, { savedSource, @@ -64,8 +58,8 @@ export function resolveAdminCloudtentaclesSessionPayload( } export function buildAdminCloudtentaclesPersistedSessionPayload( - session = {}, - options = {} + session: JsonObject = {}, + options: JsonObject = {} ) { return { token: String(session.token || "").trim(), @@ -79,8 +73,8 @@ export function buildAdminCloudtentaclesPersistedSessionPayload( } export function buildAdminCloudtentaclesSessionSummary( - session = {}, - savedSession = {}, + session: JsonObject = {}, + savedSession: JsonObject = {}, sourceKey = "default" ) { const permissions = Array.isArray(session.permissions) @@ -97,8 +91,8 @@ export function buildAdminCloudtentaclesSessionSummary( } export function buildAdminCloudtentaclesLoginResult( - session = {}, - savedSession = {}, + session: JsonObject = {}, + savedSession: JsonObject = {}, sourceKey = "default" ) { return { @@ -120,8 +114,8 @@ export function buildAdminCloudtentaclesLoginResult( } export function buildAdminCloudtentaclesValidateResult( - session = {}, - savedSession = {}, + session: JsonObject = {}, + savedSession: JsonObject = {}, sourceKey = "default" ) { return { diff --git a/docs/backend-typescript-migration-plan.md b/docs/backend-typescript-migration-plan.md index 3106e569..9ee28b8c 100644 --- a/docs/backend-typescript-migration-plan.md +++ b/docs/backend-typescript-migration-plan.md @@ -599,6 +599,14 @@ - `npm run typecheck` - `npm run build` - `npm test` 共 139 个用例通过 +141. 后台 Cloudtentacles 配置展示模块迁移到 `.ts`: + - `src/services/admin/platform-config/cloudtentacles.ts` +142. Cloudtentacles 凭据 payload、会话 payload、持久化 session、登录 / 校验响应摘要已进入 TS 编译链路;来源、会话与响应对象补齐动态类型 +143. Docker 内验证通过: + - `src/services/admin/platform-config/cloudtentacles.test.js` 共 6 个用例通过 + - `npm run typecheck` + - `npm run build` + - `npm test` 共 139 个用例通过 ## 下一步建议