deduplicate task parsing and masking helpers

This commit is contained in:
yml
2026-05-21 18:50:07 +08:00
parent efa41ba976
commit 17a615b8de
9 changed files with 151 additions and 491 deletions
@@ -1,6 +1,11 @@
import { buildClaimUrl } from '../claim-service.js'
import { createHttpError } from '../../../utils/http.js'
import { maskCode as maskCodeValue } from '../../../utils/masking.js'
import { formatFenToAmount, normalizeFen } from '../../../utils/money.js'
import {
parseTaskContext as parseTaskContextValue,
parseTaskState as parseTaskStateValue,
} from '../../../utils/task-json.js'
export const CLAIM_TERMINAL_STATUSES = new Set(['expired', 'closed'])
export const REDEEM_REPLACEMENT_LIMIT = 10
@@ -178,21 +183,7 @@ export function mergeTaskContext(task, patch = {}) {
}
export function parseTaskState(task) {
const value = task?.state_json
if (!value) {
return {}
}
if (typeof value === 'object') {
return value
}
try {
return JSON.parse(String(value || '{}'))
} catch {
return {}
}
return parseTaskStateValue(task)
}
export function isAssistedClaimTask(task) {
@@ -200,21 +191,7 @@ export function isAssistedClaimTask(task) {
}
export function parseTaskContext(task) {
const value = task?.context_json
if (!value) {
return {}
}
if (typeof value === 'object') {
return value
}
try {
return JSON.parse(String(value || '{}'))
} catch {
return {}
}
return parseTaskContextValue(task)
}
export function normalizeClaimLoginType(loginType) {
@@ -227,15 +204,5 @@ export function isRecoverableSessionError(error) {
}
export function maskCode(value) {
const text = String(value || '').trim()
if (!text) {
return ''
}
if (text.length <= 8) {
return `${text.slice(0, 2)}****${text.slice(-2)}`
}
return `${text.slice(0, 4)}****${text.slice(-4)}`
return maskCodeValue(value, { shortMask: '****' })
}