import isEmpty from 'lodash/isEmpty'; import { IResponse } from './types'; /** * 返回菜鸟标准数据结构中的 data * * @example * 原始数据 * { * data: { * k1: 'v1', * k2: 'v2', * k3: 'v3' * }, * success: true, * errorCode: '0000', * errorMsg: '' * } * * 格式化后取出来的数据 * { * k1: 'v1', * k2: 'v2', * k3: 'v3' * } */ export function getStandardData( res: IResponse, formatResult?: (data: IResponse) => IFormatResult, ) { // 此处历史遗留兼容代码,暂时保留,后期增加埋点,确认该代码是否有用 if (isEmpty(res)) { return res as unknown as IFormatResult; } // 如果存在用户格式化函数,数据处理权交给用户 if (typeof formatResult === 'function') { return formatResult(res) as unknown as IFormatResult; } // 如果是标准数据结构的数据,取出data,且在没有format函数时,默认判断属于能被组件消费的 IFormatResult 类型 if (!isEmpty(res?.data)) { return res?.data as unknown as IFormatResult; } // 如果非标准数据架构,返回原始数据,同样此处历史遗留兼容代码,暂时保留,后期增加埋点,确认该代码是否有用 return res as unknown as IFormatResult; }