-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Hi folks I just want to make a note that a major revision of typhonjs-escomplex will be in the works during late summer / fall this year completing and enhancing functionality. This issue tracks the major enhancements and provides a road map toward a non-alpha release in the fall or thereabout.
There are a few major changes planned. The first is to update the AST generation / parsing to Babylon 7 (6 is currently used) and cover any new stage 2+ proposals. The second is a potential major overhaul to the execution environment of typhonjs-escomplex such that it can work in conjunction with other AST parsing tooling simultaneously. The last major feature is to support Typescript via Babylon 7 and process all new AST nodes to provide complexity reports for TS and JS code.
While backward compatibility of current report generation will likely be maintained a large goal is to find a clean way to integrate complexity report generation along side a documentation generation tool which I'm also maintaining, TJSDoc, via a common AST generation / parsing runtime. Both of these tools parse the AST tree of source code, but TJSDoc builds a comprehensive DB structure (TaffyDB) instead of a nested JSON dump of generated data. Ideally the outcome of this major enhancement is to provide a shared runtime where both tools can execute simultaneously and build respective DBs of documentation and complexity information where the documentation DB has a reference to the complexity DB for all documented nodes. This is a big task, but one worth tackling as it is not efficient or easy to map the current static report generation of typhonjs-escomplex separately. The great result for TJSDoc will be complexity information linked to the doc DB providing coherent display of complexity info in a documentation tool. 3rd parties will be able to create plugins for TJSDoc to display complexity information in interesting ways attached to doc and source code data / repo references, etc. It will be possible to still use typhonjs-escomplex standalone as well though the report format may change for the next major release.
I'll refine this issue as a task lisk presents itself toward the end of summer, but wanted to define the 3 major enhancements that will drive things towards a non-alpha release.