| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // @ts-check
-
- /*
- Type gen script
-
- This script will generate TypeScript declarations for the code editor. It reads
- the global types, as well as all of the code classes, and writes them into a
- single file as a string. This string is fed into the Monaco editor as an extraLib.
- */
-
- const fs = require('fs/promises')
-
- async function copyTypesToFile() {
- const types = await fs.readFile(__dirname + '/../types.ts', 'utf8')
- const codeIndex = await fs.readFile(
- __dirname + '/../state/code/index.ts',
- 'utf8'
- )
- const codeDot = await fs.readFile(__dirname + '/../state/code/dot.ts', 'utf8')
- const codeEllipse = await fs.readFile(
- __dirname + '/../state/code/ellipse.ts',
- 'utf8'
- )
- const codeLine = await fs.readFile(
- __dirname + '/../state/code/line.ts',
- 'utf8'
- )
- const codePolyline = await fs.readFile(
- __dirname + '/../state/code/polyline.ts',
- 'utf8'
- )
- const codeRay = await fs.readFile(__dirname + '/../state/code/ray.ts', 'utf8')
- const codeArrow = await fs.readFile(
- __dirname + '/../state/code/arrow.ts',
- 'utf8'
- )
- const codeDraw = await fs.readFile(
- __dirname + '/../state/code/draw.ts',
- 'utf8'
- )
- const codeRectangle = await fs.readFile(
- __dirname + '/../state/code/rectangle.ts',
- 'utf8'
- )
- const codeVector = await fs.readFile(__dirname + '/../utils/vec.ts', 'utf8')
- const codeUtils = await fs.readFile(
- __dirname + '/../state/code/utils.ts',
- 'utf8'
- )
-
- const content =
- `
- // HEY! DO NOT MODIFY THIS FILE. THE CONTENTS OF THIS FILE
- // ARE AUTO-GENERATED BY A SCRIPT AT: /scripts/type-gen.js
- // ANY CHANGES WILL BE LOST WHEN THE SCRIPT RUNS AGAIN!
-
- export default {` +
- `
- name: "types.ts",
- content: \`
-
- ${types}
-
- ${codeIndex.match(/export default(.|\n)*$/g)[0]}
- ${codeDot.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeEllipse.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeLine.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codePolyline.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeRay.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeRectangle.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeArrow.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeDraw.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeUtils.match(/\/\*\*(.|\n)*$/g)[0]}
- ${codeVector}
- \`
- }`
- .replaceAll('export default', '')
- .replaceAll('export ', '')
-
- await fs.writeFile(
- __dirname + '/../components/code-panel/types-import.ts',
- content
- )
- }
-
- // Kickoff
- copyTypesToFile()
|