imrishabh18/corne-keyboard

The code defines and renders two surface-mount chip components with SMT pads, silkscreen outlines, and 3D CAD models (OBJ and STEP) for PCB assembly.

Version
2.0.21
License
unset
Stars
1

scripts/patch-core-panel-primitives.mjs

import fs from 'node:fs'
const base = new URL('../node_modules/@tscircuit/core/', import.meta.url)
const pkg = JSON.parse(fs.readFileSync(new URL('package.json', base), 'utf8'))
if (pkg.version !== '0.0.1861') throw Error('Review the panel primitive patch before upgrading core')
const file = new URL('dist/index.js', base)
let code = fs.readFileSync(file, 'utf8')
const marker = '/* corne-panel-owned-primitives */'
if (!code.includes(marker)) {
  const needle = 'component.lowercaseComponentName !== "board" && component.lowercaseComponentName !== "subpanel"'
  if (code.split(needle).length !== 2) throw Error('Unexpected core panel child guard')
  code = code.replace(needle, `${needle} && !(${marker} this.lowercaseComponentName === "panel" && ["cutout", "hole"].includes(component.lowercaseComponentName))`)
  fs.writeFileSync(file, code)
  console.log('Enabled explicit panel-owned cutout and hole primitives in core')
}