
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
node-typescript-compiler
Advanced tools
Exposes the TypesScript compiler (tsc) as a node.js module
Allows you to invoke tsc from a node script.
This work trivially by spawning tsc
from whenever it can be found, ideally a sibling ../node_modules/typescript module.
Example use case: I'm using this to build several variants of my modules = node / browser, calling tsc with slight modifications of target and lib.
Note to evaluators: This module is solidly built (not a hack), it works in a straightforward and reliable way and will properly catch and report any possible error. Usage in production is thus possible.
node-typescript-compiler requires the typescript module as a sibling, not included so you can choose your version. (node-typescript-compiler will intelligently try to locate another typescript install if it can't be found as a sibling. This is not recommended)
npm i --save-dev typescript
npm i --save-dev node-typescript-compiler
Node requirements: >=12 since this module is now pure ESM. If needed, the older v3 should work for older node >=4. Not promising anything.
WARNING You should have a working TypeScript setup with a tsc+tsconfig.json before using this tool.
It'll be easier to know where the errors are from: your setup or this tool?
The module exposes a unique function, compile({tscOptions}, [files], [{options}]):
tscOptions is a hashmap of tsc options
tsconfig.json and using just { project: '.' } to refer to itfiles is an optional array of files to compile, if not implied through tscOptions (force it to undefined if you need the 3rd param)options is an optional hash of:
verbose: boolean (default false) explain what's happening and display more detailed errorsbanner: string (default node-typescript-compiler:) what is displayed as the first line of stdoutimport tsc from 'node-typescript-compiler'
await tsc.compile({
'project': '.'
})
--> Will spawn tsc --project .
import tsc from 'node-typescript-compiler'
const tsconfig = { json: require('../tsconfig.json') }
await tsc.compile(
{
...tsconfig.json.compilerOptions,
declaration: false,
outDir: 'dist/es6.amd',
module: 'amd'
},
tsconfig.json.files,
)
--> Will spawn tsc <…non-overriden tsconfig options> --outDir dist/es6.amd --module amd
(boolean "false" values cause the corresponding option to not be added to the invocation string, this is the intended behaviour)
import tsc from 'node-typescript-compiler'
await tsc.compile({
help: true
})
--> Will spawn tsc --help (boolean "true" values are not needed thus don't appear on the invocation string, option presence is enough)
This module should be fairly stable. Its behaviour is straightforward and all possible error cases should be caught.
This module will intelligently try to extract the error message from stdout/stderr if possible.
Output is forwarded, with a radix: tsc>
The output is monitored and on detection of an incremental recompilation, a convenient separator will be displayed.
Also the --listFiles option should lead to a readable output.
This module should work on Windows thanks to using the cross-spawn package. However this has NOT been tested personally by the author.
It seems we could do that more elegantly and at a lower level by directly calling tsc code, as explained here: https://basarat.gitbooks.io/typescript/content/docs/compiler/overview.html
However, that would take a lot of time and effort, and I'm afraid of API changes. So no.
https://www.npmjs.com/package/ntypescript but they have poor doc and don't allow choosing the typescript version (ex. using the unstable "next")
FAQs
Exposes typescript compiler (tsc) as a node.js module
The npm package node-typescript-compiler receives a total of 8,869 weekly downloads. As such, node-typescript-compiler popularity was classified as popular.
We found that node-typescript-compiler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.