日本語
Node.js 14.15.0 atau lebih baru.
npm install @yumemi-inc/statictrace
Anda dapat menginstal statictrace baik per proyek atau secara global.
pnpm install
pnpm run build
ts-node : pnpx ts-node src/lib.ts -p /absolute/path/to/tsconfig.json
statictrace -- -p /absolute/path/to/tsconfig.json
Anda dapat menghilangkan opsi -p dengan membuat file .env dengan variabel TS_PROJECT_CONFIG .
TS_PROJECT_CONFIG=/absolute/path/to/tsconfig.json
Opsi lain
u, --use <printer> (Opsional): Pilih salah satu jenis printer default ( text atau mermaid ). statictrace memulai analisis statis kode Anda dari titik yang secara eksplisit mengisyaratkan oleh pengembang. Misalnya, jika Anda ingin menganalisis aliran pendaftaran seperti di bawah ini, Anda perlu menambahkan petunjuk JSDOC ke fungsi di mana aliran dimulai: @entrypoint YourFlowName .
/**
* @entrypoint Registration
*/
function startRegistration ( ) {
processRegistration ( ) ;
finishRegistration ( ) ;
untracedFunction ( ) ;
cleanupSomething ( ) ;
} Hanya melakukan ini tidak menghasilkan output tetapi statictrace secara internal melacak semua fungsi dan metode metode yang terjadi dalam startRegistration() dan setiap fungsi panggilan dalam fungsi tersebut sampai tidak ada panggilan. Dengan kata lain, itu membangun tumpukan statis. Jika ada fungsi dan metode tertentu yang ingin Anda uji atau dokumentasikan, misalnya untuk mengetahui apakah beberapa fungsi dipanggil, perintah panggilan dan hubungan orang tua/anak, Anda perlu menandai fungsi yang relevan dengan komentar khusus lain: @trace .
/** @trace */
function processRegistration ( ) {
someRegistrationProcedure ( ) ;
} Dengan statictrace ini menghasilkan output berikut:
Entrypoint: Registration
startRegistration
processRegistration
someRegistrationProcedure
Anda dapat menggunakan output ini sebagai snapshot dari stacktrace, dan menggunakannya dari pustaka pengujian pilihan Anda untuk menjamin bahwa aliran tidak berubah setelah misalnya refactoring. Anda juga dapat mengeluarkan stacktrace sebagai grafik mermaid untuk tujuan dokumentasi (lihat gambar di bawah).
$ statictrace
=======================
Entrypoint: SomeEntrypoint
begin
funcA
funcC
beingNestedEntrypoint
funcA
funcC
funcB
funcBstatictrace -u mermaid > graphs.mdIni adalah bagaimana grafik putri duyung yang diberikan terlihat seperti:

const { run } = require ( './build/lib' ) ;
const output = run ( '/absolute/path/to/tsconfig.json' , 'text' ) ;
// ...do something with output run(pathToTsConfig: string, printerType: "text" | "mermaid"): any Muat semua file proyek dan bangun grafik semua panggilan fungsi yang ditandai dengan @entrypoint atau @trace tag. Anda harus melewati jenis printer sebagai argumen kedua. Printer adalah antarmuka yang mewakili apa pun yang dapat dicetak (menampilkan hasil analisis statis dengan satu atau lain cara). Saat ini Anda tidak dapat memberikan implementasi Anda sendiri tetapi dapat memilih salah satu yang default.