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");