diff --git a/apps/backend/src/services/order/fulfillment-binding-config-service.js b/apps/backend/src/services/order/fulfillment-binding-config-service.ts similarity index 94% rename from apps/backend/src/services/order/fulfillment-binding-config-service.js rename to apps/backend/src/services/order/fulfillment-binding-config-service.ts index b21a93ab..63ca7257 100644 --- a/apps/backend/src/services/order/fulfillment-binding-config-service.js +++ b/apps/backend/src/services/order/fulfillment-binding-config-service.ts @@ -5,6 +5,8 @@ import { PROJECT_ROOT } from '../../config/runtime.js' const ORDER_FULFILLMENT_BINDINGS_FILE_PATH = path.join(PROJECT_ROOT, 'data', 'order-fulfillment-bindings.json') +type JsonObject = Record + export function getOrderFulfillmentBindingsFilePath() { return ORDER_FULFILLMENT_BINDINGS_FILE_PATH } @@ -52,11 +54,11 @@ function normalizeOrderFulfillmentBindingConfigs(rawValue) { .filter(Boolean) } -export function filterLegacyOrderFulfillmentBindings(bindings = []) { +export function filterLegacyOrderFulfillmentBindings(bindings: any[] = []) { return (Array.isArray(bindings) ? bindings : []).filter((item) => !isKuaishouCloudFulfillmentBinding(item)) } -export function isKuaishouCloudFulfillmentBinding(binding = {}) { +export function isKuaishouCloudFulfillmentBinding(binding: JsonObject = {}) { return String(binding?.provider || '').trim() === '91kaquan' && String(binding?.platform || '').trim() === 'kuaishou' } diff --git a/apps/backend/src/services/order/kuaishou-cloud-fulfillment-config-service.js b/apps/backend/src/services/order/kuaishou-cloud-fulfillment-config-service.ts similarity index 99% rename from apps/backend/src/services/order/kuaishou-cloud-fulfillment-config-service.js rename to apps/backend/src/services/order/kuaishou-cloud-fulfillment-config-service.ts index 06c61173..e8156159 100644 --- a/apps/backend/src/services/order/kuaishou-cloud-fulfillment-config-service.js +++ b/apps/backend/src/services/order/kuaishou-cloud-fulfillment-config-service.ts @@ -10,6 +10,8 @@ const KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH = path.join( "kuaishou-cloud-fulfillment.json" ); +type JsonObject = Record; + export function getKuaishouCloudFulfillmentFilePath() { return KUAISHOU_CLOUD_FULFILLMENT_FILE_PATH; } @@ -31,7 +33,7 @@ export function saveKuaishouCloudFulfillmentConfig(rawValue) { return normalized; } -export function mapKuaishouCloudFulfillmentItemsToBindings(config = {}) { +export function mapKuaishouCloudFulfillmentItemsToBindings(config: JsonObject = {}) { const items = Array.isArray(config.items) ? config.items : []; return items diff --git a/docs/backend-typescript-migration-plan.md b/docs/backend-typescript-migration-plan.md index 3a74d7c2..2b51901d 100644 --- a/docs/backend-typescript-migration-plan.md +++ b/docs/backend-typescript-migration-plan.md @@ -527,6 +527,15 @@ - `npm run typecheck` - `npm run build` - `npm test` 共 139 个用例通过 +117. 订单履约配置模块迁移到 `.ts`: + - `src/services/order/fulfillment-binding-config-service.ts` + - `src/services/order/kuaishou-cloud-fulfillment-config-service.ts` +118. 订单履约绑定过滤、快手 Cloud 配置读取 / 保存 / 映射到履约绑定已进入 TS 编译链路;默认动态配置对象补齐类型 +119. Docker 内验证通过: + - `src/services/order/fulfillment-binding-config-service.test.js`、`src/services/order/kuaishou-cloud-fulfillment-config-service.test.js` 共 3 个用例通过 + - `npm run typecheck` + - `npm run build` + - `npm test` 共 139 个用例通过 ## 下一步建议