✨ Snazzy utilities around the TypeScript CLI. ✨
npm install --global tsc-fancy
tsc-fancy
Or for the terse:
tscf
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
.
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 for file changes.
[1:23:56 PM] File change detected. Starting incremental compilation...
[1:23:56 PM] Compilation complete. Watching for file changes.
See TypeScript#21295.
--preserveConsoleOutput
uses--replace
logic under the hood to remove the console clearing character\x1Bc
/\u001bc
.
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(1,5): Oh dearest me! TS2322: Type '"no"' is not assignable to type 'number'.
src/file.ts(2,5): Oh dearest me! TS2322: Type '"yes"' is not assignable to type 'number'.
Alias of the tsc executable to exec
, if not "tsc"
.
> tsc-fancy --tsc ../TypeScript/built/local/tsc.js
This package exposes an execTsc
method that takes in an options object and returns the spawned ChildProcess
.
import { execTsc } from "tsc-fancy";
execTsc()
.on("close", (code: number) => {
console.log("All done! Exit code:", code);
});
.on("error", (error: error) => {
console.log("Oh no! Error:", error);
});
The options object's type is exported as ExecTscOptions
.
Arguments to directly pass to tsc
.
execTsc({
args: ["--p", ".", "--watch"],
});
In CLI usage, these are everything not known by
tsc-fancy
.
Regular expressions with text to replace them with.
execTsc({
replacers: new Map([
[/error/gi, "Oh dearest me!"],
]),
});
Alias of the tsc executable to exec
, if not "tsc"
.
execTsc({
tsc: "../TypeScript/built/local/tsc.js",
});
🙌 See Contributing.md. 🙌