feat: migrate app routes and business modules
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { createRequestError } from './request-client.js'
|
||||
import { isNormalDisableStatus } from './normal-disable-status.js'
|
||||
|
||||
export const normalizeOptionalNumericId = (value, label, code) => {
|
||||
if (value === undefined || value === null || value === '') return null
|
||||
if (typeof value === 'string' && /^[1-9]\d*$/.test(value)) return value
|
||||
if (typeof value === 'number' && Number.isSafeInteger(value) && value > 0) return String(value)
|
||||
throw createRequestError(`${label}无效`, code)
|
||||
}
|
||||
|
||||
export const normalizeResponseText = (
|
||||
value,
|
||||
label,
|
||||
{ code = 'API_RESPONSE_INVALID', subject = '接口响应' } = {}
|
||||
) => {
|
||||
if (value === undefined || value === null) return ''
|
||||
if (typeof value !== 'string') {
|
||||
throw createRequestError(`${subject}字段 ${label} 无效`, code)
|
||||
}
|
||||
return value.trim()
|
||||
}
|
||||
|
||||
export const normalizeOptionalResponseText = (value, field, label, code) => {
|
||||
if (value === undefined || value === null) return ''
|
||||
if (typeof value !== 'string') {
|
||||
throw createRequestError(`${label}字段 ${field} 无效`, code)
|
||||
}
|
||||
return value.trim()
|
||||
}
|
||||
|
||||
export const normalizeNormalDisableResponseStatus = (value, label, code) => {
|
||||
const status = normalizeResponseText(value, label, { code })
|
||||
if (!status) return ''
|
||||
if (!isNormalDisableStatus(status)) {
|
||||
throw createRequestError(`${label}无效`, code)
|
||||
}
|
||||
return status
|
||||
}
|
||||
|
||||
export const normalizeOptionalNonnegativeInteger = (value, label, code) => {
|
||||
if (value === undefined || value === null) return 0
|
||||
if (!Number.isSafeInteger(value) || value < 0) {
|
||||
throw createRequestError(`${label}无效`, code)
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
export const normalizeOptionalCurrencyAmount = (value, label, code, { required = false } = {}) => {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
if (required) throw createRequestError(`${label}缺失`, code)
|
||||
return ''
|
||||
}
|
||||
if (typeof value !== 'string') throw createRequestError(`${label}无效`, code)
|
||||
const match = value.trim().match(/^(0|[1-9]\d*)(?:\.(\d{1,2}))?$/)
|
||||
if (!match) throw createRequestError(`${label}无效`, code)
|
||||
return `${match[1]}.${(match[2] || '').padEnd(2, '0')}`
|
||||
}
|
||||
Reference in New Issue
Block a user