From bffa4c5b27ca351490aee25d7309e2ff6fe67041 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Sun, 9 Jan 2022 16:01:14 -0600 Subject: [PATCH] readme --- README.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 46d191a..4907516 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,34 @@ # @extollo/cc -Early-phase compiler for Extollo projects. +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