Package Exports
- @aivenio/tsc-output-parser
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@aivenio/tsc-output-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
tsc-output-parser
Parses errors from tsc output to a structured JSON format.
Converts tsc output:
src/actions.ts(691,20): error TS7006: Parameter 'error' implicitly has an 'any' type.
to JSON:
[
{
"type": "Item",
"value": {
"path": {
"type": "Path",
"value": "src/actions.ts"
},
"cursor": {
"type": "Cursor",
"value": {
"line": 691,
"col": 20
}
},
"tsError": {
"type": "TsError",
"value": {
"type": "error",
"errorString": "TS7006"
}
},
"message": {
"type": "Message",
"value": " Parameter 'error' implicitly has an 'any' type.\n"
}
}
}
]
Install
Install with npm i -g @aivenio/tsc-output-parser
.
Usage
CLI
Via temporary file:
tsc --strict --noEmit > ts.out
tsc-output-parser ts.out > errors.json
By piping:
tsc --strict --noEmit | tsc-output-parser
API
import { parse } from '@aivenio/tsc-output-parser';
const input = `
src/actions.ts(691,20): error TS7006: Parameter 'error' implicitly has an 'any' type.
`;
const errors = parse(input);
Test examples
To convert the real.txt test example, clone the repo and run:
npm install
npm run peg
./node_modules/.bin/ts-node src/cli.ts test/inputs/real.txt
Motivation
To migrate our code base to TypeScript using strict types, we built tooling to track our progress. The parsing could've been done in many (probably easier) ways, but it serves as a good example of using PEG.js to parse text.