feat: migrate app routes and business modules
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import { createRequestError } from './request-client.js'
|
||||
import {
|
||||
normalizeOptionalNonnegativeInteger,
|
||||
normalizeOptionalNumericId,
|
||||
normalizeResponseText
|
||||
} from './response-normalizers.js'
|
||||
|
||||
const supportedDictionaryTypes = new Set([
|
||||
'gen_ceremony_type',
|
||||
'gen_growth_record_type'
|
||||
])
|
||||
|
||||
export const normalizeBusinessDictionaryType = (dictType) => {
|
||||
if (!supportedDictionaryTypes.has(dictType)) {
|
||||
throw new TypeError('当前页面不支持该业务字典')
|
||||
}
|
||||
return dictType
|
||||
}
|
||||
|
||||
export const normalizeBusinessDictionaryOptions = (dictType, value) => {
|
||||
normalizeBusinessDictionaryType(dictType)
|
||||
if (!Array.isArray(value)) {
|
||||
throw createRequestError('业务字典响应不是列表', 'BUSINESS_DICTIONARY_RESPONSE_INVALID')
|
||||
}
|
||||
const values = new Set()
|
||||
return value.map((item) => {
|
||||
if (!item || typeof item !== 'object' || Array.isArray(item)) {
|
||||
throw createRequestError('业务字典响应包含无效条目', 'BUSINESS_DICTIONARY_RESPONSE_INVALID')
|
||||
}
|
||||
const optionValue = normalizeResponseText(item.value, 'value')
|
||||
const label = normalizeResponseText(item.label, 'label')
|
||||
if (!optionValue || !label || values.has(optionValue)) {
|
||||
throw createRequestError('业务字典响应缺少稳定选项', 'BUSINESS_DICTIONARY_RESPONSE_INVALID')
|
||||
}
|
||||
values.add(optionValue)
|
||||
return {
|
||||
code: normalizeOptionalNumericId(item.code, '业务字典编码', 'BUSINESS_DICTIONARY_RESPONSE_INVALID'),
|
||||
value: optionValue,
|
||||
label,
|
||||
sort: normalizeOptionalNonnegativeInteger(item.sort, '业务字典排序值', 'BUSINESS_DICTIONARY_RESPONSE_INVALID'),
|
||||
default: item.default === true
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user