1.1.6 • Published 4 years ago
ts-err-hunter v1.1.6
ts-err-hunter
Introduction
This tool records all code range of function declarations and arrow functions into a json file named .ts-err-hunter-file-fn-range.json in the project root.
Sample:
|---my-app
| |---src
| | |---inner
| | | |---b.ts
| | |---a.tssrc/a.ts:
export function add(a: number, b: number): number {
return a + b;
}src/inner/b.ts:
export const add = (a: number, b: number): number => {
return a + b;
}
export class Calc {
add(a: number, b: number): number {
return a + b;
}
}_.ts-err-hunter-file-fn-range.json:
{
"src/a.ts": [
{
"start": 0,
"end": 69
}
],
"src/inner/b.ts": [
{
"start": 6,
"end": 72
},
{
"start": 18,
"end": 72
},
{
"start": 93,
"end": 153
}
]
}Installation
$ npm i -D ts-err-hunterUsage
To use ts-err-hunter, please add this code into your entry file:
import { register } from "ts-err-hunter";
register();And assumes that your source code directory is src and tsconfig.json is in the project root.
Creates a new file named compile.ts in the project root with content:
import { compile } from "ts-err-hunter";
compile("src", "tsconfig.json");Then run this to compile your code into JS.
$ ts-node compile.tsYou can also create compile.js with:
const compile = require("ts-err-hunter").compile;
compile("src", "tsconfig.json");then run:
$ node compile.jsNow you can use it:
import fs from "fs";
import { register } from "ts-err-hunter";
register();
const foo = () => {
// comments...
fs.readFileSync("xxx.json");
}
(async () => {
try {
foo();
} catch (err) {
const sourceCode = await err.getSourceCode();
if (sourceCode) {
console.log(`source file: ${sourceCode.fileName}`);
console.log(sourceCode.content);
}
throw err;
}
})();Executes these code, and we will get error point in detail (with TS source code):
source file: /absolute/path/to/TS/code.ts
> 6 const foo = () => {
> 7 // comments...
> 8 fs.readFileSync("xxx.json");
^ ------------> ENOENT: no such file or directory, open 'xxx.json'
> 9 }