1.1.2 ā€¢ Published 6 years ago

tsc-fancy v1.1.2

Weekly downloads
15
License
MIT
Repository
github
Last release
6 years ago

tsc-fancy

Build Status npm version Downloads

āœØ 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 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.

--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(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'.

--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.

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.

args: string[]

Arguments to directly pass to tsc.

execTsc({
    args: ["--p", ".", "--watch"],
});

In CLI usage, these are everything not known by tsc-fancy.

replacers: Map<RegExp, string>

Regular expressions with text to replace them with.

execTsc({
    replacers: new Map([
        [/error/gi, "Oh dearest me!"],
    ]),
});

tsc: string

Alias of the tsc executable to exec, if not "tsc".

execTsc({
    tsc: "../TypeScript/built/local/tsc.js",
});

Contributing

šŸ™Œ See Contributing.md. šŸ™Œ

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago