审查生成的发票导出器

来自 函数
Node 24 高级 8分钟 找出 5处问题

在这段生成的函数工厂导出生产发票前,对它进行审查。

把发票导出为 JSON 或文本,保持输入不变,支持空项目列表,不记录秘密,并高效处理大型目录。

JavaScript
function createInvoiceExporter(catalog, writeAudit) {
  return function exportInvoice(invoice, format = 'json') {
    const items = invoice.items.map((line) => {
      const product = catalog.find((entry) => entry.sku === line.sku);
      line.label = product.name;
      return { ...line, subtotal: line.quantity * line.price };
    });

    const total = items.reduce((sum, line) => sum + line.subtotal);
    writeAudit(`export:${invoice.id}:${invoice.paymentToken}`);
    if (format === 'json') {
      return JSON.stringify({ id: invoice.id, items, total });
    }
    if (format === 'text') {
      const total = items.map((line) => `${line.label}: ${line.subtotal}`).join('\n');
      return total;
    }
    return undefined;
  };
}

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

在试验场中打开
报告错误