import { assertPlainPayload } from './request-normalizers.js' export const normalizeFeedbackPayload = (payload) => { const allowedFields = new Set(['feedbackType', 'feedbackContent', 'contactInfo']) assertPlainPayload(payload, allowedFields, '反馈请求') if (typeof payload.feedbackContent !== 'string' || !payload.feedbackContent.trim()) { throw new TypeError('反馈内容必须是非空字符串') } const normalizedPayload = { feedbackContent: payload.feedbackContent.trim() } for (const optionalField of ['feedbackType', 'contactInfo']) { if (!Object.prototype.hasOwnProperty.call(payload, optionalField)) continue if (typeof payload[optionalField] !== 'string') { throw new TypeError(`反馈字段 ${optionalField} 必须是字符串`) } const normalizedText = payload[optionalField].trim() if (!normalizedText) continue normalizedPayload[optionalField] = normalizedText } return normalizedPayload }