Full ES6+ support via typhonjs-escomplex - #192
Conversation
|
That's awesome @typhonrt, i'll run it against some test projects. Will this invalidate previous history data? |
|
Sounds good. Let me know how things work out with expanded testing. I have only run the minimal tests that I extended with the 2 ES6 classes. I don't think the history will be invalidated. You can see file 12: I'll have version |
|
Just a little heads up.. I locked the typhonjs-escomplex version to 0.0.6 as 0.0.7 does have a final change to data structures involved. Previously the npm versioning was |
|
Just about to merge and saw the commit, are you comfortable with the state now? |
|
Yes, but you might wait until tomorrow. In running Plato against a large project, esdoc everything was fine, but I noticed that So, it's great to see that getting this working with Plato helped discover a case that somehow escaped the thousands of tests in I'll post a further update here once I get 0.0.8 out. Nothing will change with the Plato integration except setting the |
|
@jsoverson... We're good to go! I significantly hardened computed method names and metrics gathering of the same. Not only are string literals (example) picked up, but any complex computed name is intelligently handled. IE: Resolve to method names The individual Halstead operators + operands are all picked up for the above computed method names as well. Ship it! It'd be neat to get grunt-plato updated too.. ;) It should be noted that arrow functions at the module scope are anonymous. The CSS / template of Plato currently requires unique names for the context linking / highlight box displayed when mousing over methods. IE are both named |
|
🎱 @jsoverson I'm working on finishing refinements to typhonjs-escomplex and doing a thorough overview of all the data collected. I'll post another PR with the version bump to typhonjs-escomplex when that is ready. |
Greets folks... @jsoverson This PR updates plato to use
typhonjs-escomplexwhich is a completely rewritten version of escomplex supporting ES6+ / ES7 / edge complexity reporting. Plato has been updated with mixed ES5 / ES6 tests, automatic detection for ES Modules / ES6 for JSHint options, normalized all of the accessing code and HTML templates removing previous shims for escomplex data.