tsc-fancy
✨ Snazzy utilities around the TypeScript CLI. ✨
npm install --global tsc-fancy tsc-fancy
Or for the terse:
tscf
What?
Some user-requested features are too esoteric for TypeScript to add them. That's fine! We can just stick them here, outside of the main repository. 🔥
Everything passed to the tsc-fancy
CLI that it doesn't recognize is given directly to tsc
.
Thus, you can use tsc-fancy
as a drop-in replacement for tsc
.
CLI Flags
--preserveConsoleOutput
Use with tsc
's -w
/--watch
mode to stop it from clearing the screen on recompiles.
This is useful for tools such as monorepo build aggregators that run multiple tsc
instances at once.
> tsc-fancy --preserveConsoleOutput --pretty --watch [1:23:45 PM] Compilation complete. Watching
See TypeScript#21295.
--preserveConsoleOutput
uses--replace
logic under the hood to remove the console clearing character\x1Bc
/\u001bc
.
--replace
Replaces TSC characters with your own.
Each replacement is converted to a RegExp
with the /gi
flag.
> tsc-fancy --replace error "Oh dearest me!" --pretty false src/file.ts: Oh dearest me! TS2322: Type '"no"' is not assignable to type 'number'.src/file.ts: Oh dearest me! TS2322: Type '"yes"' is not assignable to type 'number'.
--tsc
Alias of the tsc executable to exec
, if not "tsc"
.
> tsc-fancy --tsc ../TypeScript/built/local/tsc.js
Programmatic Usage
This package exposes an execTsc
method that takes in an options object and returns the spawned ChildProcess
.
; execTsc .on"close",; .on"error",;
The options object's type is exported as ExecTscOptions
.
args: string[]
Arguments to directly pass to tsc
.
execTsc;
In CLI usage, these are everything not known by
tsc-fancy
.
replacers: Map<RegExp, string>
Regular expressions with text to replace them with.
execTsc;
tsc: string
Alias of the tsc executable to exec
, if not "tsc"
.
execTsc;
Contributing
🙌 See Contributing.md. 🙌