Build Tools Overview
The Source Academy Modules build tools are written in Typescript and designed to be run from the command line
The build tools are comprised of several sections:
- Command Handlers
- The actual code that runs command line argument parsing
- Builders
- The code that converts a bundle or tab into its outputs
- Prebuild Tasks
- Code that is intended to be run before builders
- Testing
- Code for integrating
vitest
- Code for integrating
- Templates
- Code for the template command
Structure of the Build Tools package
dirtree
buildtools
├── bin
│ ├── templates // Actual template files, retrieved at runtime
│ ├── docsreadme.md // Docs HTML readme, retrieved at runtime
│ └── index.js // The compiled and bundled buildtools
├── src
│ ├── __tests_mocks__ // Contains a set of mock bundles and tabs for testing
│ ├── build
│ │ ├── docs // Builders for HTML and JSON documentation
│ │ └── modules // Builders for bundles and tabs
│ │ ├── manifest.schema.json // Schema used to validate bundle manifests
│ │ ├── all.ts // Combined builder for a specific bundle or tab
│ │ └── manifest.ts // Code for working with bundle manifests and bundle/tab resolution
│ ├── commands // Code where command handlers are defined
│ ├── prebuild // Code for running ESLint and tsc, both separately and in parallel
│ ├── templates // Code for template commands
│ └── testing.ts // Code for running Vitest from NodeJS
└── workspacer.py // Python code for updating JSON files across bundles and tabs