开启后端严格空值检查

This commit is contained in:
yml2213
2026-05-26 08:45:06 +08:00
parent 49ac82698f
commit 7aef1a6d50
21 changed files with 101 additions and 38 deletions
@@ -69,7 +69,7 @@ type TaskContext = {
export async function syncDeliveryTasksForOrder(
order: OrderRow,
orderItems: OrderItemRow[],
): Promise<Array<TaskRow | null>> {
): Promise<TaskRow[]> {
return syncDeliveryTasksForOrderWithDeps(order, orderItems)
}
@@ -77,7 +77,7 @@ export async function syncDeliveryTasksForOrderWithDeps(
order: OrderRow,
orderItems: OrderItemRow[],
deps: DeliveryTaskDeps = {},
): Promise<Array<TaskRow | null>> {
): Promise<TaskRow[]> {
const {
createTask: createDeliveryTask = createTask,
listTasksByOrderId: listTasks = listTasksByOrderId,
@@ -104,11 +104,12 @@ export async function syncDeliveryTasksForOrderWithDeps(
}
const itemMap = new Map(orderItems.map((item) => [item.id, item]))
return Promise.all(existingTasks.map((task) => preparePaidTask({
const preparedTasks = await Promise.all(existingTasks.map((task) => preparePaidTask({
...task,
skuCode: itemMap.get(task.order_item_id)?.sku_code || '',
skuName: itemMap.get(task.order_item_id)?.sku_name || '',
}, runtimeDeps)))
return preparedTasks.filter(isTaskRow)
}
const tasks: DeliveryTaskRow[] = []
@@ -243,11 +244,13 @@ export async function syncDeliveryTasksForOrderWithDeps(
updatedAt: createdAt,
})
tasks.push({
...task,
skuCode: item.sku_code,
skuName: item.sku_name,
})
if (task) {
tasks.push({
...task,
skuCode: item.sku_code,
skuName: item.sku_name,
})
}
}
}
@@ -255,7 +258,8 @@ export async function syncDeliveryTasksForOrderWithDeps(
return tasks
}
return Promise.all(tasks.map((task) => preparePaidTask(task, runtimeDeps)))
const preparedTasks = await Promise.all(tasks.map((task) => preparePaidTask(task, runtimeDeps)))
return preparedTasks.filter(isTaskRow)
}
async function preparePaidTask(
@@ -380,6 +384,10 @@ function parseJsonObject(value: unknown): JsonObject {
}
}
function isTaskRow(task: TaskRow | DeliveryTaskRow | null | undefined): task is TaskRow {
return Boolean(task && Number(task.id || 0) > 0)
}
function isKuaishouCloudExecutor(value: unknown): boolean {
return String(value || '').trim() === 'kuaishou_ct_assisted'
}