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')
}