generated from garrettmills/template-npm-typescript
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# @extollo/cc
|
|
|
|
The Extollo project compiler, `excc`.
|
|
|
|
The `excc` command provides additional compile-time support required by the Extollo framework through the application of various pre- and post-compilation phases:
|
|
|
|
- `PreparePhase` - copies the source files into a separate build directory and writes an augmented `tsconfig.json`.
|
|
- `ZodifyPhase` - provides support for Extollo's form validation by generating Zod schemata from TypeScript interfaces specified by the application config
|
|
- `CompilePhase` - invokes `tsc` on the augmented build directory
|
|
- `NonSourcePhase` - copies non-source (read: non-TypeScript) files into the built `lib` dir
|
|
|
|
## Usage
|
|
|
|
```txt
|
|
usage: excc.js [-h] -c CONFIG -t TSCONFIG [-v]
|
|
|
|
Early-phase compiler for Extollo projects
|
|
|
|
optional arguments:
|
|
-h, --help show this help message and exit
|
|
-c CONFIG, --config CONFIG
|
|
path to the package.json of the project to compile
|
|
-t TSCONFIG, --tsconfig TSCONFIG
|
|
path to the tsconfig.json for the project to compile
|
|
-v, --verbose output more verbose and debugging output
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Aside from the normal `tsconfig.json`, `excc` reads its configuration from the `extollo` section of the project's `package.json`:
|
|
|
|
- `extollo.cc.compileDir: string` - relative path to the folder to be created and used to compile the project
|
|
- `extollo.cc.zodify: string[]` - array of directories whose files should have Zod schemata generated for their interfaces
|
|
- `extollo.cc.non-source: string[]` - array of non-source compile-paths to be copied into the compiled distribution directory
|