tscircuit/autorouting-dataset-01

This code manages the hardware and electronic components for circuit design and PCB layout, defining components like resistors, capacitors, transistors, connectors, and footprints, and providing tools for component placement, PCB topology, and electrical connections.

Version
1.0.102
License
unset
Stars
4

scripts/create-dataset/index.tsx

import { readFile } from "node:fs/promises"
import { createDatasetFromLib } from "scripts/create-dataset/createDatasetFromLib"

type TscircuitConfig = {
  mainEntrypoint?: string
  ignoredFiles?: string[]
  includeBoardFiles?: string[]
}

/**
 * Main script to generate a dataset from the circuits defined in lib/circuit.
 * It uses tscircuit.config.json to decide which circuit files to render into `lib/dataset/`.
 */
const main = async () => {
  const tscircuitConfigText = await readFile("tscircuit.config.json", "utf8")
  const tscircuitConfig = JSON.parse(tscircuitConfigText) as TscircuitConfig
  const ignoredFileSet = new Set(tscircuitConfig.ignoredFiles ?? [])
  const includeBoardFiles = tscircuitConfig.includeBoardFiles ?? []
  const mainEntrypointList: string[] = []
  const { mainEntrypoint } = tscircuitConfig

  if (typeof mainEntrypoint === "string") {
    mainEntrypointList.push(mainEntrypoint)
  }

  const circuitFilePathList = Array.from(
    new Set([...mainEntrypointList, ...includeBoardFiles]),
  ).filter(
    (circuitFilePath) =>
      circuitFilePath.endsWith(".tsx") && !ignoredFileSet.has(circuitFilePath),
  )

  await createDatasetFromLib({ circuitFilePathList })
}

void main()