# @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