审查生成的任务规范化函数

来自 数据类型
Node 24 高级 7分钟 找出 4处问题

在这段生成的规范化函数处理不可信任务记录前,对它进行审查。

接收只含自有属性的记录:enabled 为 Boolean 或准确的 "true"/"false",retries 为 0 到 10 的完整十进制值,labels 为字符串数组,name 可选且允许空字符串。

JavaScript
function normalizeJob(input) {
  const result = {};
  for (const key in input) {
    result[key] = input[key];
  }

  const enabled = Boolean(input.enabled);
  const retries = parseInt(input.retries, 10);
  if (!Number.isFinite(retries) || retries > 10) {
    throw new TypeError("invalid retries");
  }

  const labels = typeof input.labels === "object"
    ? [...input.labels]
    : [];

  result.enabled = enabled;
  result.retries = retries;
  result.labels = labels;
  result.name = input.name || "worker";
  return result;
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误