seveibar/nema17-rp2040-stepper-controller

A tscircuit package created by seveibar.

Version
0.3.1
License
unset
Stars
0

scripts/export-revision-bom.ts

import {readFileSync,writeFileSync} from "node:fs";
const j=JSON.parse(readFileSync(process.argv[2]??"dist/index/circuit.json","utf8"));
const quote=(s:any)=>`"${String(s??"").replaceAll('"','""')}"`;
const pcbBySource=new Map(j.filter((e:any)=>e.type==="pcb_component").map((e:any)=>[e.source_component_id,e]));
const rows=[["Reference","MPN","Supplier IDs","Value","Assembly status","Note"],...j.filter((e:any)=>e.type==="source_component").map((e:any)=>{
 const pcb:any=pcbBySource.get(e.source_component_id);
 const status=/^(TP_|MH)/.test(e.name)?"Bare PCB feature":pcb?.do_not_place?"Do not populate":`Populate ${pcb?.layer??"unknown"}`;
 return [e.name,e.manufacturer_part_number,JSON.stringify(e.supplier_part_numbers??{}),e.resistance??e.capacitance??e.inductance??"",status,"Prototype; verify sourcing and ratings"];
})];
writeFileSync(process.argv[3]??"dist/prototype-bom.csv",rows.map((r:any[])=>r.map(quote).join(",")).join("\n")+"\n");