# <img align="bottom" alt="code" height="50" width="50" src="https://cdnjs.cloudflare.com/ajax/libs/octicons/8.3.0/svg/code.svg"> Refactoring proposal ## 1. Design summary / code smell(s) Version 1.2.0 of **archetypes-rules** has: - 19 production dependencies - 62 development dependencies ## 2. Refactoring proposal(s) 1. Simplify RuleContext evaluations with [**@sindresorhus/ow**/`isValid`](https://github.com/sindresorhus/ow#owisvalidvalue-predicate) function. 1. Rename the module **@archetypes/rules**. 1. Extend all **@archetypes/rules**/`Variables` with [**@sindresorhus/ow**](https://github.com/sindresorhus/ow) methods (by ECMAScript data type). ## 3. Code quality improvement scores [![Sonar Quality Gate][sonar-alert-status-badge]][sonar-alert-status-url] - [ ] The refactorings changes have either: - **Reduced** _complexity_, _duplications_, _issues_, _security_ issues; - **Improved** _maintainability_ or _reliability_; or - **Both**. ### 3.1. Complexity measures <blockquote> These measures indicate how simple—or complicated—the control flow of the application is. <dl> <dt>Cyclomatic Complexity</dt> <dd>Measures the minimum number of test cases (i.e., conditional branches) are required for full test coverage.</dd> <dt>Cognitive Complexity</dt> <dd>Measures how difficult the application is to understand.</dd> </dl> </blockquote> Version | Cyclomatic Complexity | Cognitive Complexity -------------------------|-----------------------:|---------------------: [v1.2.0][branch-v1.2.0] | 210 | 48 👎 v2.0.0 | 225 | 52 ### 3.2. Source Lines Of Code (SLOC) Version | SLOC -------------------------|-----------------------: [v1.2.0][branch-v1.2.0] | 1,265 👎 v2.0.0 | 1,391 ### 3.3. Dependencies (production) Version | Dependency count -------------------------|-----------------------: [v1.2.0][branch-v1.2.0] | 19 👍 v2.0.0 | 15 ### 3.4. Bundle size (gzip) Version | Packed size | Unpacked Size -------------------------|-------------|-------------- [v1.2.0][branch-v1.2.0] | 16.1 kB | 68.9 kB 👎 v2.0.0 | 16.6 kB | 71.2 kB ### 3.5. Code quality results summary | Measure | Scores | | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Quality gate** | [![Sonar Alert Status Metrics][sonar-alert-status-badge]][sonar-alert-status-url] | | **Defects** (Bugs) | [![Sonar Bugs Metrics][sonar-bugs-badge]][sonar-bugs-url] | | **Duplications** | [![Sonar Duplicated Lines Density Metrics][sonar-duplicated-lines-density-badge]][sonar-duplicated-lines-density-url] | | **Maintainability** | [![Sonar Code Smells Metrics][sonar-code-smells-badge]][sonar-code-smells-url]<br>[![Sonar Sqale Rating Metrics][sonar-sqale-rating-badge]][sonar-sqale-rating-url]<br>[![Sonar Sqale Index Metrics][sonar-sqale-index-badge]][sonar-sqale-index-url]<br>[![Sonar Ncloc Metrics][sonar-ncloc-badge]][sonar-ncloc-url] | | **Reliability** | [![Sonar Reliability Rating Metrics][sonar-reliability-rating-badge]][sonar-reliability-rating-url] | | **Security** | [![Sonar Security Rating Metrics][sonar-security-rating-badge]][sonar-security-rating-url]<br>[![Sonar Vulnerabilities Metrics][sonar-vulnerabilities-badge]][sonar-vulnerabilities-url] | | **Test coverage** | [![Sonar Coverage Metrics][sonar-coverage-badge]][sonar-coverage-url] | [branch-v1.2.0]: https://github.com/commonality/archetypes-rules/tree/v1.2.0 [refactoring-catalog-url]: https://refactoring.com/catalog/ <!-- SonarCloud badge refs --> [sonar-alert-status-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=alert_status&template=FLAT [sonar-alert-status-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-bugs-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=bugs&template=FLAT [sonar-bugs-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-code-smells-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=code_smells&template=FLAT [sonar-code-smells-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-coverage-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=coverage&template=FLAT [sonar-coverage-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-duplicated-lines-density-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=duplicated_lines_density&template=FLAT [sonar-duplicated-lines-density-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-ncloc-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=ncloc&template=FLAT [sonar-ncloc-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-reliability-rating-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=reliability_rating&template=FLAT [sonar-reliability-rating-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-security-rating-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=security_rating&template=FLAT [sonar-security-rating-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-sqale-index-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=sqale_index&template=FLAT [sonar-sqale-index-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-sqale-rating-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=sqale_rating&template=FLAT [sonar-sqale-rating-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules [sonar-vulnerabilities-badge]: https://sonarcloud.io/api/project_badges/measure?project=commonality_archetypes-rules&metric=vulnerabilities&template=FLAT [sonar-vulnerabilities-url]: https://sonarcloud.io/dashboard?id=commonality_archetypes-rules
1. Design summary / code smell(s)
Version 1.2.0 of archetypes-rules has:
2. Refactoring proposal(s)
Simplify RuleContext evaluations with @sindresorhus/ow/
isValidfunction.Rename the module @archetypes/rules.
Extend all @archetypes/rules/
Variableswith @sindresorhus/ow methods (by ECMAScript data type).3. Code quality improvement scores
The refactorings changes have either:
3.1. Complexity measures
3.2. Source Lines Of Code (SLOC)
3.3. Dependencies (production)
3.4. Bundle size (gzip)
3.5. Code quality results summary