Repository: graphql-markdown/graphql-markdown
Pull request #990 (2023-09-09 10:27:17)

:recycle:  enable eslint commented rules
# Description

Enable remaining eslint rules previously commented.

# Checklist

- [x] My changes follow the [contributing guidelines](https://github.com/graphql-markdown/graphql-markdown/blob/main/CONTRIBUTING.md) of this project.
- [x] I have performed a self-review of my code.
- [ ] I have made corresponding changes to the documentation.
- [x] I have added tests that prove my fix is effective or that my changes work.
- [x] New and existing unit tests pass locally with my changes.


codesee-maps[bot]: <details open>
<summary><b>👇 <a href="https://app.codesee.io/r/reviews?pr=990&src=https%3A%2F%2Fgithub.com%2Fgraphql-markdown%2Fgraphql-markdown">Click on the image</a> for a new way to code review</b>
</summary>

####

[![Review these changes using an interactive CodeSee Map](https://s3.us-east-2.amazonaws.com/maps.codesee.io/images/github/graphql-markdown/graphql-markdown/990/a947a86d/5321353d8fbcdf3429befca1cdcfecfcdbc044f0.svg)](https://app.codesee.io/r/reviews?pr=990&src=https%3A%2F%2Fgithub.com%2Fgraphql-markdown%2Fgraphql-markdown)

#### Legend
<img src="https://app.codesee.io/Legend_v3.png" alt="CodeSee Map legend" width="220" height="156">
</details>
sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [1 Code Smell](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


coveralls: 
[![Coverage Status](https://coveralls.io/builds/62542735/badge)](https://coveralls.io/builds/62542735)

coverage: 94.207% (+0.02%) from 94.191% when pulling **5321353d8fbcdf3429befca1cdcfecfcdbc044f0 on chore/eslint-enable-unused-rules** into **61a214b61b010eaf7eb79b1783a36565ad2d804e on main**.

sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![2.2%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '2.2%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [2.2% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.4%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.4%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.4% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.4%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.4%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.4% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.4%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.4%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.4% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.3%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.3% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.3%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.3% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; [![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonarcloud.io/dashboard?id=graphql-markdown_graphql-markdown&pullRequest=990)

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=graphql-markdown_graphql-markdown&pullRequest=990&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990) No Coverage information  
[![0.3%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.3%')](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list) [0.3% Duplication](https://sonarcloud.io/component_measures?id=graphql-markdown_graphql-markdown&pullRequest=990&metric=new_duplicated_lines_density&view=list)



Patch:
diff --git a/config/.eslintrc.js b/config/.eslintrc.js
index fdb9be91..7af62863 100644
--- a/config/.eslintrc.js
+++ b/config/.eslintrc.js
@@ -13,10 +13,10 @@ module.exports = {
         "jest/globals": true,
       },
       plugins: [
-        "jest",
-        "prettier",
         "@typescript-eslint",
         "eslint-plugin-tsdoc",
+        "jest",
+        "prettier",
       ],
       settings: {
         "import/parsers": {
@@ -53,12 +53,16 @@ module.exports = {
         "@typescript-eslint/array-type": "error",
         "@typescript-eslint/ban-types": "error",
         "@typescript-eslint/consistent-generic-constructors": "error",
+        "@typescript-eslint/consistent-indexed-object-style": "error",
         "@typescript-eslint/consistent-type-assertions": "error",
+        "@typescript-eslint/consistent-type-definitions": "error",
         "@typescript-eslint/consistent-type-exports": "error",
         "@typescript-eslint/consistent-type-imports": "error",
         "@typescript-eslint/explicit-function-return-type": "error",
         "@typescript-eslint/explicit-module-boundary-types": "error",
+        "@typescript-eslint/member-ordering": "error",
         "@typescript-eslint/method-signature-style": "error",
+        "@typescript-eslint/no-base-to-string": "error",
         "@typescript-eslint/no-confusing-non-null-assertion": "error",
         "@typescript-eslint/no-confusing-void-expression": "error",
         "@typescript-eslint/no-duplicate-type-constituents": "error",
@@ -68,30 +72,43 @@ module.exports = {
         "@typescript-eslint/no-invalid-void-type": "error",
         "@typescript-eslint/no-misused-promises": "error",
         "@typescript-eslint/no-redundant-type-constituents": "error",
+        "@typescript-eslint/no-restricted-imports": "error",
         "@typescript-eslint/no-require-imports": "error",
         "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
         "@typescript-eslint/no-unnecessary-condition": "error",
         "@typescript-eslint/no-unnecessary-type-constraint": "error",
         "@typescript-eslint/no-unsafe-enum-comparison": "error",
+        "@typescript-eslint/no-unsafe-return": "error",
+        "@typescript-eslint/no-unused-expressions": "error",
+        "@typescript-eslint/no-use-before-define": "error",
         "@typescript-eslint/non-nullable-type-assertion-style": "error",
         "@typescript-eslint/prefer-as-const": "error",
         "@typescript-eslint/prefer-for-of": "error",
         "@typescript-eslint/prefer-function-type": "error",
         "@typescript-eslint/prefer-includes": "error",
+        "@typescript-eslint/prefer-nullish-coalescing": "error",
+        "@typescript-eslint/prefer-optional-chain": "error",
+        "@typescript-eslint/prefer-readonly": "error",
+        "@typescript-eslint/prefer-reduce-type-parameter": "error",
         "@typescript-eslint/prefer-regexp-exec": "error",
         "@typescript-eslint/prefer-string-starts-ends-with": "error",
         "@typescript-eslint/promise-function-async": "error",
+        "@typescript-eslint/no-redeclare": "error",
         "@typescript-eslint/restrict-plus-operands": "error",
         "@typescript-eslint/return-await": "error",
         "@typescript-eslint/sort-type-constituents": "error",
         "@typescript-eslint/unified-signatures": "error",
+        "arrow-body-style": ["error", "always"],
+        eqeqeq: "error",
+        "no-else-return": "error",
+        "no-mixed-operators": "error",
+        "no-restricted-imports": "off",
         "no-return-await": "off",
+        "no-unused-expressions": "off",
+        "no-use-before-define": "off",
         "tsdoc/syntax": "warn",
-        // "@typescript-eslint/member-ordering": "error",
-        // "@typescript-eslint/naming-convention": "error",
-        // "@typescript-eslint/no-unsafe-return": "error",
-        // "@typescript-eslint/prefer-nullish-coalescing": "error",
-        // "@typescript-eslint/prefer-optional-chain": "error",
+        "prefer-arrow-callback": ["error", { allowNamedFunctions: true }],
+        "func-style": ["error", "expression", { allowArrowFunctions: true }],
       },
     },
     {
diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts
index 73ad640e..3094aeed 100644
--- a/packages/core/src/config.ts
+++ b/packages/core/src/config.ts
@@ -7,7 +7,6 @@ import type {
   ConfigOptions,
   ConfigPrintTypeOptions,
   CustomDirective,
-  CustomDirectiveOptions,
   DirectiveName,
   GroupByDirectiveOptions,
   LoaderOption,
@@ -75,65 +74,63 @@ export const DEFAULT_OPTIONS: Required<
   skipDocDirective: [],
 } as const;
 
-export async function buildConfig(
-  configFileOpts: Maybe<ConfigOptions>,
-  cliOpts: Maybe<CliOptions>,
-  id: Maybe<string> = "default",
-): Promise<Options> {
-  if (!cliOpts) {
-    cliOpts = {};
+export const getSkipDocDirective = (
+  name: Maybe<DirectiveName>,
+): DirectiveName => {
+  const OPTION_REGEX = /^@(?<directive>\w+)$/;
+
+  if (typeof name !== "string" || !OPTION_REGEX.test(name)) {
+    throw new Error(`Invalid "${name}"`);
   }
 
-  const graphqlConfig = await loadConfiguration(id);
-  const config: ConfigOptions = {
-    ...DEFAULT_OPTIONS,
-    ...graphqlConfig,
-    ...configFileOpts,
-  } as const;
+  const {
+    groups: { directive },
+  } = OPTION_REGEX.exec(name) as RegExpExecArray & {
+    groups: { directive: DirectiveName };
+  };
 
-  const baseURL: string = cliOpts.base ?? config.baseURL;
-  const skipDocDirective = getSkipDocDirectives(cliOpts, config);
+  return directive;
+};
 
-  return {
-    baseURL,
-    customDirective: getCustomDirectives(
-      config.customDirective,
-      skipDocDirective,
-    ),
-    diffMethod: getDiffMethod(cliOpts.diff ?? config.diffMethod, cliOpts.force),
-    docOptions: getDocOptions(cliOpts, config.docOptions),
-    groupByDirective:
-      parseGroupByOption(cliOpts.groupByDirective) ?? config.groupByDirective,
-    homepageLocation:
-      cliOpts.homepage ?? config.homepage ?? DEFAULT_OPTIONS.homepage,
-    id: id ?? DEFAULT_OPTIONS.id,
-    linkRoot: cliOpts.link ?? config.linkRoot ?? DEFAULT_OPTIONS.linkRoot,
-    loaders: config.loaders,
-    outputDir: join(cliOpts.root ?? config.rootPath, baseURL),
-    prettify: cliOpts.pretty ?? config.pretty ?? DEFAULT_OPTIONS.pretty,
-    printer: (config.printer ?? DEFAULT_OPTIONS.printer)!,
-    printTypeOptions: getPrintTypeOptions(cliOpts, config.printTypeOptions),
-    schemaLocation: cliOpts.schema ?? config.schema ?? DEFAULT_OPTIONS.schema,
-    skipDocDirective,
-    tmpDir: cliOpts.tmp ?? config.tmpDir ?? DEFAULT_OPTIONS.tmpDir,
-  } as Options;
-}
+export const getSkipDocDirectives = (
+  cliOpts: Maybe<CliOptions>,
+  configFileOpts: Maybe<
+    Pick<ConfigOptions, "printTypeOptions" | "skipDocDirective">
+  >,
+): DirectiveName[] => {
+  const directiveList: DirectiveName[] = [].concat(
+    (cliOpts?.skip ?? []) as never[],
+    (configFileOpts?.skipDocDirective ?? []) as never[],
+  );
 
-export function getCustomDirectives(
+  const skipDirectives = directiveList.map((option) => {
+    return getSkipDocDirective(option);
+  });
+
+  if (
+    (configFileOpts &&
+      // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
+      configFileOpts.printTypeOptions?.deprecated === DeprecatedOption.SKIP) ||
+    (cliOpts && cliOpts.deprecated === DeprecatedOption.SKIP)
+  ) {
+    skipDirectives.push("deprecated" as DirectiveName);
+  }
+
+  return skipDirectives;
+};
+
+export const getCustomDirectives = (
   customDirectiveOptions: Maybe<CustomDirective>,
   skipDocDirective?: Maybe<DirectiveName[]>,
-): Maybe<CustomDirective> {
+): Maybe<CustomDirective> => {
   if (
-    typeof customDirectiveOptions === "undefined" ||
-    customDirectiveOptions === null ||
+    !customDirectiveOptions ||
     Object.keys(customDirectiveOptions).length === 0
   ) {
     return undefined;
   }
 
-  for (const [name, option] of Object.entries<CustomDirectiveOptions>(
-    customDirectiveOptions,
-  )) {
+  for (const [name, option] of Object.entries(customDirectiveOptions)) {
     if (
       Array.isArray(skipDocDirective) &&
       skipDocDirective.includes(name as DirectiveName)
@@ -153,21 +150,21 @@ export function getCustomDirectives(
   return Object.keys(customDirectiveOptions).length === 0
     ? undefined
     : customDirectiveOptions;
-}
+};
 
-export function getDiffMethod(
+export const getDiffMethod = (
   diff: TypeDiffMethod,
   force: boolean = false,
-): TypeDiffMethod {
+): TypeDiffMethod => {
   return force
     ? DiffMethod.FORCE
     : (diff.toLocaleUpperCase() as TypeDiffMethod);
-}
+};
 
-export function getDocOptions(
+export const getDocOptions = (
   cliOpts: Maybe<CliOptions>,
   configOptions: Maybe<ConfigDocOptions>,
-): Required<ConfigDocOptions> {
+): Required<ConfigDocOptions> => {
   return {
     pagination:
       (!cliOpts?.noPagination && configOptions?.pagination) ??
@@ -176,15 +173,16 @@ export function getDocOptions(
       (!cliOpts?.noToc && configOptions?.toc) ??
       DEFAULT_OPTIONS.docOptions.toc!,
     index:
+      // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
       (cliOpts?.index || configOptions?.index) ??
       DEFAULT_OPTIONS.docOptions.index!,
   } as Required<ConfigDocOptions>;
-}
+};
 
-export function getPrintTypeOptions(
+export const getPrintTypeOptions = (
   cliOpts: Maybe<CliOptions>,
   configOptions: Maybe<ConfigPrintTypeOptions>,
-): Required<ConfigPrintTypeOptions> {
+): Required<ConfigPrintTypeOptions> => {
   return {
     codeSection:
       (!cliOpts?.noCode && configOptions?.codeSection) ??
@@ -204,53 +202,11 @@ export function getPrintTypeOptions(
       (!cliOpts?.noTypeBadges && configOptions?.typeBadges) ??
       DEFAULT_OPTIONS.printTypeOptions.typeBadges!,
   } as Required<ConfigPrintTypeOptions>;
-}
+};
 
-export function getSkipDocDirectives(
-  cliOpts: Maybe<CliOptions>,
-  configFileOpts: Maybe<
-    Pick<ConfigOptions, "printTypeOptions" | "skipDocDirective">
-  >,
-): DirectiveName[] {
-  const directiveList: DirectiveName[] = [].concat(
-    (cliOpts?.skip ?? []) as never[],
-    (configFileOpts?.skipDocDirective ?? []) as never[],
-  );
-
-  const skipDirectives = directiveList.map((option) =>
-    getSkipDocDirective(option),
-  );
-
-  if (
-    (configFileOpts &&
-      configFileOpts.printTypeOptions?.deprecated === DeprecatedOption.SKIP) ||
-    (cliOpts && cliOpts.deprecated === DeprecatedOption.SKIP)
-  ) {
-    skipDirectives.push("deprecated" as DirectiveName);
-  }
-
-  return skipDirectives;
-}
-
-export function getSkipDocDirective(name: Maybe<DirectiveName>): DirectiveName {
-  const OPTION_REGEX = /^@(?<directive>\w+)$/;
-
-  if (typeof name !== "string" || !OPTION_REGEX.test(name)) {
-    throw new Error(`Invalid "${name}"`);
-  }
-
-  const {
-    groups: { directive },
-  } = OPTION_REGEX.exec(name) as RegExpExecArray & {
-    groups: { directive: DirectiveName };
-  };
-
-  return directive;
-}
-
-export function parseGroupByOption(
+export const parseGroupByOption = (
   groupOptions: unknown,
-): Maybe<GroupByDirectiveOptions> {
+): Maybe<GroupByDirectiveOptions> => {
   const DEFAULT_GROUP = "Miscellaneous";
   const OPTION_REGEX =
     /^@(?<directive>\w+)\((?<field>\w+)(?:\|=(?<fallback>\w+))?\)/;
@@ -261,7 +217,7 @@ export function parseGroupByOption(
 
   const parsedOptions = OPTION_REGEX.exec(groupOptions);
 
-  if (typeof parsedOptions === "undefined" || parsedOptions == null) {
+  if (typeof parsedOptions === "undefined" || parsedOptions === null) {
     throw new Error(`Invalid "${groupOptions}"`);
   }
 
@@ -273,6 +229,50 @@ export function parseGroupByOption(
     directive,
     field,
     fallback = DEFAULT_GROUP,
-  } = parsedOptions.groups as GroupByDirectiveOptions;
+  } = parsedOptions.groups as unknown as GroupByDirectiveOptions;
   return { directive, field, fallback } as GroupByDirectiveOptions;
-}
+};
+
+export const buildConfig = async (
+  configFileOpts: Maybe<ConfigOptions>,
+  cliOpts: Maybe<CliOptions>,
+  id: Maybe<string> = "default",
+): Promise<Options> => {
+  if (!cliOpts) {
+    cliOpts = {};
+  }
+
+  const graphqlConfig = await loadConfiguration(id);
+  const config: ConfigOptions = {
+    ...DEFAULT_OPTIONS,
+    ...graphqlConfig,
+    ...configFileOpts,
+  } as const;
+
+  const baseURL: string = cliOpts.base ?? config.baseURL;
+  const skipDocDirective = getSkipDocDirectives(cliOpts, config);
+
+  return {
+    baseURL,
+    customDirective: getCustomDirectives(
+      config.customDirective,
+      skipDocDirective,
+    ),
+    diffMethod: getDiffMethod(cliOpts.diff ?? config.diffMethod, cliOpts.force),
+    docOptions: getDocOptions(cliOpts, config.docOptions),
+    groupByDirective:
+      parseGroupByOption(cliOpts.groupByDirective) ?? config.groupByDirective,
+    homepageLocation:
+      cliOpts.homepage ?? config.homepage ?? DEFAULT_OPTIONS.homepage,
+    id: id ?? DEFAULT_OPTIONS.id,
+    linkRoot: cliOpts.link ?? config.linkRoot ?? DEFAULT_OPTIONS.linkRoot,
+    loaders: config.loaders,
+    outputDir: join(cliOpts.root ?? config.rootPath, baseURL),
+    prettify: cliOpts.pretty ?? config.pretty ?? DEFAULT_OPTIONS.pretty,
+    printer: (config.printer ?? DEFAULT_OPTIONS.printer)!,
+    printTypeOptions: getPrintTypeOptions(cliOpts, config.printTypeOptions),
+    schemaLocation: cliOpts.schema ?? config.schema ?? DEFAULT_OPTIONS.schema,
+    skipDocDirective,
+    tmpDir: cliOpts.tmp ?? config.tmpDir ?? DEFAULT_OPTIONS.tmpDir,
+  } as Options;
+};
diff --git a/packages/core/src/diff.ts b/packages/core/src/diff.ts
index 08e8b85e..f296176b 100644
--- a/packages/core/src/diff.ts
+++ b/packages/core/src/diff.ts
@@ -5,7 +5,7 @@ import type {
   Maybe,
 } from "@graphql-markdown/types";
 
-import { log } from "@graphql-markdown/logger";
+import { log, LogLevel } from "@graphql-markdown/logger";
 
 export const hasChanges = async (
   schema: GraphQLSchema,
@@ -27,7 +27,7 @@ export const hasChanges = async (
   } catch (error: unknown) {
     log(
       `Cannot find module '${diffModule}' from @graphql-markdown/core!`,
-      "warn",
+      LogLevel.warn,
     );
     return true;
   }
diff --git a/packages/core/src/generator.ts b/packages/core/src/generator.ts
index 0baace31..b36a9a55 100644
--- a/packages/core/src/generator.ts
+++ b/packages/core/src/generator.ts
@@ -95,12 +95,12 @@ export const generateDocFromSchema = async ({
   });
 
   const pages = await Promise.all(
-    Object.keys(rootTypes).map(async (typeName) =>
-      renderer.renderRootTypes(
+    Object.keys(rootTypes).map(async (typeName) => {
+      return renderer.renderRootTypes(
         typeName as SchemaEntity,
         rootTypes[typeName as SchemaEntity],
-      ),
-    ),
+      );
+    }),
   );
 
   await renderer.renderHomepage(homepageLocation);
diff --git a/packages/core/src/graphql-config.ts b/packages/core/src/graphql-config.ts
index e20d4cd8..f2ea1675 100644
--- a/packages/core/src/graphql-config.ts
+++ b/packages/core/src/graphql-config.ts
@@ -1,6 +1,7 @@
 import type {
   ClassName,
   ExtensionProjectConfig,
+  GraphQLExtensionDeclaration,
   LoaderOption,
   Maybe,
   PackageConfig,
@@ -10,12 +11,14 @@ import type {
 import { log } from "@graphql-markdown/logger";
 
 export const EXTENSION_NAME = "graphql-markdown" as const;
-export const GraphQLConfigExtension = () => ({ name: EXTENSION_NAME }) as const;
+export const graphQLConfigExtension: GraphQLExtensionDeclaration = () => {
+  return { name: EXTENSION_NAME } as const;
+};
 
-type ThrowOptions = {
+interface ThrowOptions {
   throwOnMissing: boolean;
   throwOnEmpty: boolean;
-};
+}
 
 export const setLoaderOptions = (
   loaders: LoaderOption,
@@ -45,22 +48,22 @@ export const loadConfiguration = async (
     throwOnEmpty: false,
   },
 ): Promise<Maybe<Readonly<ExtensionProjectConfig>>> => {
-  let GraphQLConfig;
+  let graphQLConfig;
 
   if (typeof id !== "string") {
     return undefined;
   }
 
   try {
-    GraphQLConfig = await import("graphql-config");
+    graphQLConfig = await import("graphql-config");
   } catch (error) {
     log("Cannot find module 'graphql-config'!");
     return undefined;
   }
 
-  const config = await GraphQLConfig.loadConfig({
+  const config = await graphQLConfig.loadConfig({
     ...options,
-    extensions: [GraphQLConfigExtension],
+    extensions: [graphQLConfigExtension],
     throwOnMissing,
     throwOnEmpty,
   });
diff --git a/packages/core/src/renderer.ts b/packages/core/src/renderer.ts
index 539d38bc..7d14ff14 100644
--- a/packages/core/src/renderer.ts
+++ b/packages/core/src/renderer.ts
@@ -27,24 +27,25 @@ import {
   slugify,
 } from "@graphql-markdown/utils";
 
-import { log } from "@graphql-markdown/logger";
+import { log, LogLevel } from "@graphql-markdown/logger";
 
 const SIDEBAR = "sidebar-schema.js" as const;
 const CATEGORY_YAML = "_category_.yml" as const;
 
-enum SIDEBAR_POSITION {
+enum SidebarPosition {
   FIRST = 1,
   LAST = 999,
 }
 
 export class Renderer {
-  private printer: Printer;
   group: Maybe<SchemaEntitiesGroupMap>;
   outputDir: string;
   baseURL: string;
   prettify: boolean;
   options: Maybe<ConfigDocOptions & { deprecated: TypeDeprecatedOption }>;
 
+  private readonly printer: Printer;
+
   constructor(
     printer: Printer,
     outputDir: string,
@@ -64,7 +65,7 @@ export class Renderer {
   async generateCategoryMetafile(
     category: string,
     dirPath: string,
-    sidebarPosition: number = SIDEBAR_POSITION.FIRST,
+    sidebarPosition: number = SidebarPosition.FIRST,
     styleClass?: string,
   ): Promise<void> {
     const filePath = join(dirPath, CATEGORY_YAML);
@@ -104,7 +105,7 @@ export class Renderer {
       await this.generateCategoryMetafile(
         "deprecated",
         dirPath,
-        SIDEBAR_POSITION.LAST,
+        SidebarPosition.LAST,
         "deprecated",
       );
     }
@@ -150,7 +151,9 @@ export class Renderer {
             (type as Record<string, unknown>)[name],
           );
         })
-        .filter((res) => typeof res !== "undefined"),
+        .filter((res) => {
+          return typeof res !== "undefined";
+        }),
     );
   }
 
@@ -176,7 +179,7 @@ export class Renderer {
         return undefined;
       }
     } catch (error) {
-      log(`An error occurred while processing "${type}"`, "warn");
+      log(`An error occurred while processing "${type}"`, LogLevel.warn);
       return undefined;
     }
 
@@ -193,7 +196,7 @@ export class Renderer {
     if (!page?.groups) {
       log(
         `An error occurred while processing file ${filePath} for type "${type}"`,
-        "warn",
+        LogLevel.warn,
       );
       return undefined;
     }
diff --git a/packages/diff/src/index.ts b/packages/diff/src/index.ts
index c3d7acce..e3f00d1d 100644
--- a/packages/diff/src/index.ts
+++ b/packages/diff/src/index.ts
@@ -17,7 +17,7 @@ import { fileExists, readFile, saveFile } from "@graphql-markdown/utils";
 
 export const SCHEMA_HASH_FILE = ".schema" as const;
 export const SCHEMA_REF = "schema.graphql" as const;
-export enum COMPARE_METHOD {
+export enum CompareMethod {
   DIFF = "SCHEMA-DIFF",
   HASH = "SCHEMA-HASH",
   FORCE = "FORCE",
@@ -42,9 +42,9 @@ export const getDiff = async (
 export const checkSchemaChanges: FunctionCheckSchemaChanges = async (
   schema: GraphQLSchema,
   outputDir: string,
-  method: DiffMethodName = COMPARE_METHOD.DIFF as DiffMethodName,
+  method: DiffMethodName = CompareMethod.DIFF as DiffMethodName,
 ): Promise<boolean> => {
-  if (method === COMPARE_METHOD.DIFF) {
+  if (method === CompareMethod.DIFF) {
     const schemaRef = join(outputDir, SCHEMA_REF);
     if (await fileExists(schemaRef)) {
       const schemaDiff = await getDiff(schema, schemaRef);
@@ -54,7 +54,7 @@ export const checkSchemaChanges: FunctionCheckSchemaChanges = async (
     await saveFile(schemaRef, schemaPrint);
   }
 
-  if (method === COMPARE_METHOD.HASH) {
+  if (method === CompareMethod.HASH) {
     const hashFile = join(outputDir, SCHEMA_HASH_FILE);
     const hashSchema = getSchemaHash(schema);
     if (await fileExists(hashFile)) {
diff --git a/packages/graphql/src/directive.ts b/packages/graphql/src/directive.ts
index d3bbf3a1..809f03c7 100644
--- a/packages/graphql/src/directive.ts
+++ b/packages/graphql/src/directive.ts
@@ -27,6 +27,67 @@ import { getDirective } from "./introspection";
  */
 export const WILDCARD_DIRECTIVE = "*" as const;
 
+/**
+ * Checks if a directive name is referenced in `customDirective` option.
+ *
+ * @param schemaDirectiveName - the GraphQL directive name.
+ * @param customDirectiveOptions - the `customDirective` option.
+ *
+ * @returns `true` if the directive is declared or `*` is declared in `customDirective` option, else `false`.
+ *
+ */
+export const isCustomDirective = (
+  schemaDirectiveName: DirectiveName,
+  customDirectiveOptions: CustomDirective,
+): boolean => {
+  return (
+    schemaDirectiveName in customDirectiveOptions ||
+    WILDCARD_DIRECTIVE in customDirectiveOptions
+  );
+};
+
+/**
+ * Returns a record set of custom handlers from a directive by name.
+ *
+ * @param schemaDirectiveName - the GraphQL directive name.
+ * @param customDirectiveOptions - the `customDirective` option.
+ *
+ * @returns a record set of custom handlers for the matching directive (or if `*` is declared), or undefined if no match.
+ *
+ * @example
+ * ```js
+ * import { getCustomDirectiveOptions } from "@graphql-markdown/utils/directive";
+ *
+ * const customDirectiveOptions = {
+ *   "*": {
+ *     descriptor: (_, constDirectiveType) => `Wildcard ${constDirectiveType.name}`;
+ *   },
+ * };
+ *
+ * const customDirectives = getCustomDirectiveOptions("testB", customDirectiveOptions);
+ *
+ * // Expected result: {
+ * //   "descriptor": (_, constDirectiveType) => `Wildcard ${constDirectiveType.name}`,
+ * //   "type": "@testB",
+ * // }
+ * ```
+ *
+ */
+export const getCustomDirectiveOptions = (
+  schemaDirectiveName: DirectiveName,
+  customDirectiveOptions: CustomDirective,
+): Maybe<CustomDirectiveOptions> => {
+  if (schemaDirectiveName in customDirectiveOptions) {
+    return customDirectiveOptions[schemaDirectiveName];
+  }
+
+  if (WILDCARD_DIRECTIVE in customDirectiveOptions) {
+    return customDirectiveOptions[WILDCARD_DIRECTIVE as DirectiveName];
+  }
+
+  return undefined;
+};
+
 /**
  * Returns a custom directives map with custom handlers from `customDirective`.
  *
@@ -86,10 +147,10 @@ export const WILDCARD_DIRECTIVE = "*" as const;
  * ```
  *
  */
-export function getCustomDirectives(
+export const getCustomDirectives = (
   { directives: schemaDirectives }: Pick<SchemaMap, "directives">,
   customDirectiveOptions?: CustomDirective,
-): Maybe<CustomDirectiveMap> {
+): Maybe<CustomDirectiveMap> => {
   const customDirectives: CustomDirectiveMap = {};
 
   if (
@@ -125,68 +186,7 @@ export function getCustomDirectives(
   }
 
   return isEmpty(customDirectives) ? undefined : customDirectives;
-}
-
-/**
- * Returns a record set of custom handlers from a directive by name.
- *
- * @param schemaDirectiveName - the GraphQL directive name.
- * @param customDirectiveOptions - the `customDirective` option.
- *
- * @returns a record set of custom handlers for the matching directive (or if `*` is declared), or undefined if no match.
- *
- * @example
- * ```js
- * import { getCustomDirectiveOptions } from "@graphql-markdown/utils/directive";
- *
- * const customDirectiveOptions = {
- *   "*": {
- *     descriptor: (_, constDirectiveType) => `Wildcard ${constDirectiveType.name}`;
- *   },
- * };
- *
- * const customDirectives = getCustomDirectiveOptions("testB", customDirectiveOptions);
- *
- * // Expected result: {
- * //   "descriptor": (_, constDirectiveType) => `Wildcard ${constDirectiveType.name}`,
- * //   "type": "@testB",
- * // }
- * ```
- *
- */
-export function getCustomDirectiveOptions(
-  schemaDirectiveName: DirectiveName,
-  customDirectiveOptions: CustomDirective,
-): Maybe<CustomDirectiveOptions> {
-  if (schemaDirectiveName in customDirectiveOptions) {
-    return customDirectiveOptions[schemaDirectiveName];
-  }
-
-  if (WILDCARD_DIRECTIVE in customDirectiveOptions) {
-    return customDirectiveOptions[WILDCARD_DIRECTIVE as DirectiveName];
-  }
-
-  return undefined;
-}
-
-/**
- * Checks if a directive name is referenced in `customDirective` option.
- *
- * @param schemaDirectiveName - the GraphQL directive name.
- * @param customDirectiveOptions - the `customDirective` option.
- *
- * @returns `true` if the directive is declared or `*` is declared in `customDirective` option, else `false`.
- *
- */
-export function isCustomDirective(
-  schemaDirectiveName: DirectiveName,
-  customDirectiveOptions: CustomDirective,
-): boolean {
-  return (
-    schemaDirectiveName in customDirectiveOptions ||
-    WILDCARD_DIRECTIVE in customDirectiveOptions
-  );
-}
+};
 
 /**
  * Returns a map of custom directives for a schema entity.
@@ -244,10 +244,10 @@ export function isCustomDirective(
  *
  * ```
  */
-export function getConstDirectiveMap(
+export const getConstDirectiveMap = (
   entity: unknown,
   customDirectiveMap: Maybe<CustomDirectiveMap>,
-): Maybe<CustomDirectiveMap> {
+): Maybe<CustomDirectiveMap> => {
   if (!customDirectiveMap || isEmpty(customDirectiveMap)) {
     return undefined;
   }
@@ -257,9 +257,12 @@ export function getConstDirectiveMap(
     return undefined;
   }
 
-  return constDirectives.reduce((directiveMap, constDirective) => {
-    const name = constDirective.name as DirectiveName;
-    directiveMap[name] = customDirectiveMap[name];
-    return directiveMap;
-  }, {} as CustomDirectiveMap);
-}
+  return constDirectives.reduce<CustomDirectiveMap>(
+    (directiveMap, constDirective) => {
+      const name = constDirective.name as DirectiveName;
+      directiveMap[name] = customDirectiveMap[name];
+      return directiveMap;
+    },
+    {},
+  );
+};
diff --git a/packages/graphql/src/formatter.ts b/packages/graphql/src/formatter.ts
index e8e29381..1122f078 100644
--- a/packages/graphql/src/formatter.ts
+++ b/packages/graphql/src/formatter.ts
@@ -19,38 +19,36 @@ import {
 import type { Maybe } from "@graphql-markdown/types";
 
 /**
- * Returns a printable formatted value for a GraphQL type.
- * This is the generic function.
+ * Format an enum or scalar GraphQL type value into a printable equivalent based on the type.
  *
- * @param entity - the GraphQL schema entity processed.
- * @param entity.type - the GraphQL schema type.
- * @param entity.defaultValue - the GraphQL schema type's value to be formatted.
+ * @internal
+ *
+ * @param type - the GraphQL schema type.
+ * @param defaultValue - the GraphQL schema type's value to be processed
  *
  * @returns a printable formatted value.
  *
  */
-export function getFormattedDefaultValue<T>({
-  type,
-  defaultValue,
-}: {
-  type: Maybe<GraphQLType>;
-  defaultValue: T;
-}): Maybe<T | string> {
-  if (
-    typeof type === "undefined" ||
-    type === null ||
-    typeof defaultValue === "undefined" ||
-    defaultValue === null
-  ) {
-    return undefined;
+const _formatDefaultValue = <T>(
+  type: Maybe<GraphQLType>,
+  defaultValue: T,
+): T | string => {
+  if (isEnumType(type)) {
+    return defaultValue;
   }
 
-  if (isListType(type)) {
-    return __formatListDefaultValues(getNamedType(type), defaultValue);
+  switch (type) {
+    case GraphQLInt:
+    case GraphQLFloat:
+    case GraphQLBoolean:
+      return defaultValue;
+    case GraphQLID:
+    case GraphQLString:
+      return `"${defaultValue}"`;
+    default:
+      return defaultValue;
   }
-
-  return __formatDefaultValue(type, defaultValue);
-}
+};
 
 /**
  * Format a list GraphQL type value into a printable equivalent.
@@ -63,10 +61,10 @@ export function getFormattedDefaultValue<T>({
  * @returns a printable formatted value.
  *
  */
-function __formatListDefaultValues<T>(
+const _formatListDefaultValues = <T>(
   type: Maybe<GraphQLType>,
   defaultValue: T,
-): string {
+): string => {
   if (typeof type === "undefined" || type === null) {
     return "";
   }
@@ -75,41 +73,45 @@ function __formatListDefaultValues<T>(
     ? defaultValue
     : [defaultValue];
 
-  const defaultValuesString = defaultValues.map((defaultValue) =>
-    getFormattedDefaultValue({ type, defaultValue }),
-  );
+  const defaultValuesString = defaultValues.map((defaultValue) => {
+    // eslint-disable-next-line @typescript-eslint/no-use-before-define
+    return getFormattedDefaultValue({ type, defaultValue });
+  });
 
   return `[${defaultValuesString.join(", ")}]`;
-}
+};
 
 /**
- * Format an enum or scalar GraphQL type value into a printable equivalent based on the type.
- *
- * @internal
+ * Returns a printable formatted value for a GraphQL type.
+ * This is the generic function.
  *
- * @param type - the GraphQL schema type.
- * @param defaultValue - the GraphQL schema type's value to be processed
+ * @param entity - the GraphQL schema entity processed.
+ * @param entity.type - the GraphQL schema type.
+ * @param entity.defaultValue - the GraphQL schema type's value to be formatted.
  *
  * @returns a printable formatted value.
  *
  */
-function __formatDefaultValue<T>(
-  type: Maybe<GraphQLType>,
-  defaultValue: T,
-): T | string {
-  if (isEnumType(type)) {
-    return defaultValue;
+export const getFormattedDefaultValue = <T>({
+  type,
+  defaultValue,
+}: {
+  type: Maybe<GraphQLType>;
+  defaultValue: T;
+}): Maybe<T | string> => {
+  if (
+    typeof type === "undefined" ||
+    type === null ||
+    // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
+    typeof defaultValue === "undefined" ||
+    defaultValue === null
+  ) {
+    return undefined;
   }
 
-  switch (type) {
-    case GraphQLInt:
-    case GraphQLFloat:
-    case GraphQLBoolean:
-      return defaultValue;
-    case GraphQLID:
-    case GraphQLString:
-      return `"${defaultValue}"`;
-    default:
-      return defaultValue;
+  if (isListType(type)) {
+    return _formatListDefaultValues(getNamedType(type), defaultValue);
   }
-}
+
+  return _formatDefaultValue(type, defaultValue);
+};
diff --git a/packages/graphql/src/group.ts b/packages/graphql/src/group.ts
index 094498d6..f82a3afd 100644
--- a/packages/graphql/src/group.ts
+++ b/packages/graphql/src/group.ts
@@ -6,6 +6,13 @@
  * @packageDocumentation
  */
 
+import type {
+  ConstArgumentNode,
+  ConstDirectiveNode,
+  StringValueNode,
+} from "graphql";
+import { Kind } from "graphql";
+
 import type {
   SchemaMap,
   GroupByDirectiveOptions,
@@ -17,17 +24,17 @@ import type {
 import { hasAstNode } from "./introspection";
 
 /**
- * Parses a GraphQL schema to build a map of entities with matching `groupByDirective` option.
+ * Gets the group name for a schema type based on the directive information.
  *
- * @param schemaMap - the GraphQL schema map returned by {@link introspection!getSchemaMap}
+ * @param type - a GraphQL schema named type
  * @param groupByDirective - the `groupByDirective` option.
  *
- * @returns a map of entities with matching group name.
+ * @returns the group name matching the type, or `groupByDirective.fallback` if no match found.
  *
  * @example
  * ```js
  * import { buildSchema } from "graphql";
- * import { getGroups } from "@graphql-markdown/utils/groups";
+ * import { getGroupName } from "@graphql-markdown/utils/groups";
  *
  * const schema = buildSchema(`
  *   directive @doc(
@@ -50,77 +57,66 @@ import { hasAstNode } from "./introspection";
  *   }
  * `);
  *
- *
- * const schemaMap = {
- *   objects: schema.getTypeMap(),
- *   queries: schema.getQueryType()?.getFields(),
- * };
- *
  * const groupOptions = {
  *   fallback: "common",
  *   directive: "doc",
  *   field: "category",
  * }
  *
- * const groupsMap = getGroups(schemaMap, groupOptions);
+ * getGroupName(schema.getType("Bird"), groupOptions); // Expected result: "animal"
  *
- * // Expected result: {
- * //   "objects": {
- * //     "Bird": "animal",
- * //     "Boolean": "common",
- * //     "Elf": "fantasy",
- * //     "Fish": "common",
- * //     "Query": "common",
- * //     "String": "common",
- * //     "Unicorn": "common",
- * //   },
- * //   "queries": {
- * //     "Fish": "animal",
- * //   },
- * // }
- * ```
+ * getGroupName(schema.getType("Unicorn"), groupOptions); // Expected result: "common"
  *
+ * ```
  */
-export function getGroups(
-  schemaMap: SchemaMap,
+export const getGroupName = <T>(
+  type: T,
   groupByDirective: Maybe<GroupByDirectiveOptions>,
-): Maybe<SchemaEntitiesGroupMap> {
-  const groups: SchemaEntitiesGroupMap = {};
-
-  if (!groupByDirective) {
+): Maybe<string> => {
+  if (!type || !groupByDirective) {
     return undefined;
   }
 
-  Object.keys(schemaMap).forEach((typeName) => {
-    const rootType = schemaMap[typeName as SchemaEntity];
-    if (rootType) {
-      if (typeof groups[typeName as SchemaEntity] === "undefined") {
-        groups[typeName as SchemaEntity] = {};
-      }
-      Object.keys(rootType).forEach((type) => {
-        groups[typeName as SchemaEntity]![type] = getGroupName(
-          rootType[type],
-          groupByDirective,
-        );
-      });
+  if (!hasAstNode(type)) {
+    return groupByDirective.fallback;
+  }
+
+  const allDirectives = type.astNode.directives as Maybe<ConstDirectiveNode[]>;
+
+  if (!Array.isArray(allDirectives)) {
+    return groupByDirective.fallback;
+  }
+
+  for (const directive of allDirectives) {
+    if (
+      !directive.arguments ||
+      directive.name.value !== groupByDirective.directive
+    ) {
+      continue;
     }
-  });
+    const field = directive.arguments.find(({ name, value }): boolean => {
+      return (
+        name.value === groupByDirective.field && value.kind === Kind.STRING
+      );
+    }) as Maybe<ConstArgumentNode & { value: StringValueNode }>;
+    return field?.value.value;
+  }
 
-  return groups;
-}
+  return groupByDirective.fallback;
+};
 
 /**
- * Gets the group name for a schema type based on the directive information.
+ * Parses a GraphQL schema to build a map of entities with matching `groupByDirective` option.
  *
- * @param type - a GraphQL schema named type
+ * @param schemaMap - the GraphQL schema map returned by {@link introspection!getSchemaMap}
  * @param groupByDirective - the `groupByDirective` option.
  *
- * @returns the group name matching the type, or `groupByDirective.fallback` if no match found.
+ * @returns a map of entities with matching group name.
  *
  * @example
  * ```js
  * import { buildSchema } from "graphql";
- * import { getGroupName } from "@graphql-markdown/utils/groups";
+ * import { getGroups } from "@graphql-markdown/utils/groups";
  *
  * const schema = buildSchema(`
  *   directive @doc(
@@ -143,46 +139,61 @@ export function getGroups(
  *   }
  * `);
  *
+ *
+ * const schemaMap = {
+ *   objects: schema.getTypeMap(),
+ *   queries: schema.getQueryType()?.getFields(),
+ * };
+ *
  * const groupOptions = {
  *   fallback: "common",
  *   directive: "doc",
  *   field: "category",
  * }
  *
- * getGroupName(schema.getType("Bird"), groupOptions); // Expected result: "animal"
- *
- * getGroupName(schema.getType("Unicorn"), groupOptions); // Expected result: "common"
+ * const groupsMap = getGroups(schemaMap, groupOptions);
  *
+ * // Expected result: {
+ * //   "objects": {
+ * //     "Bird": "animal",
+ * //     "Boolean": "common",
+ * //     "Elf": "fantasy",
+ * //     "Fish": "common",
+ * //     "Query": "common",
+ * //     "String": "common",
+ * //     "Unicorn": "common",
+ * //   },
+ * //   "queries": {
+ * //     "Fish": "animal",
+ * //   },
+ * // }
  * ```
+ *
  */
-export function getGroupName(
-  type: unknown,
+export const getGroups = (
+  schemaMap: SchemaMap,
   groupByDirective: Maybe<GroupByDirectiveOptions>,
-): Maybe<string> {
-  if (!type || !groupByDirective) {
-    return undefined;
-  }
-
-  if (!hasAstNode(type)) {
-    return groupByDirective.fallback;
-  }
-
-  const allDirectives = type.astNode.directives;
+): Maybe<SchemaEntitiesGroupMap> => {
+  const groups: SchemaEntitiesGroupMap = {};
 
-  if (!Array.isArray(allDirectives)) {
-    return groupByDirective.fallback;
+  if (!groupByDirective) {
+    return undefined;
   }
 
-  for (const directive of allDirectives) {
-    if (directive.name.value !== groupByDirective.directive) {
-      continue;
+  Object.keys(schemaMap).forEach((typeName) => {
+    const rootType = schemaMap[typeName as SchemaEntity];
+    if (rootType) {
+      if (typeof groups[typeName as SchemaEntity] === "undefined") {
+        groups[typeName as SchemaEntity] = {};
+      }
+      Object.keys(rootType).forEach((type) => {
+        groups[typeName as SchemaEntity]![type] = getGroupName(
+          rootType[type],
+          groupByDirective,
+        );
+      });
     }
-    const field = directive.arguments.find(
-      ({ name }: { name: Record<string, string> }) =>
-        name.value === groupByDirective.field,
-    );
-    return field.value.value;
-  }
+  });
 
-  return groupByDirective.fallback;
-}
+  return groups;
+};
diff --git a/packages/graphql/src/guard.ts b/packages/graphql/src/guard.ts
index 2e13ec3d..f686db03 100644
--- a/packages/graphql/src/guard.ts
+++ b/packages/graphql/src/guard.ts
@@ -30,16 +30,16 @@ export {
  * @param type - a GraphQL type.
  *
  */
-export function isGraphQLFieldType(
+export const isGraphQLFieldType = (
   type: unknown,
-): type is GraphQLField<unknown, unknown, unknown> {
+): type is GraphQLField<unknown, unknown, unknown> => {
   return (
     typeof type === "object" &&
     type !== null &&
     "args" in type &&
     (type as GraphQLField<unknown, unknown, unknown>).args.length > 0
   );
-}
+};
 
 /**
  * Checks if a GraphQL named type is of generic type `T`.
@@ -49,16 +49,16 @@ export function isGraphQLFieldType(
  * @param type - the GraphQL type `T`.
  *
  */
-export function instanceOf<T>(obj: unknown, type: new () => T): obj is T {
+export const instanceOf = <T>(obj: unknown, type: new () => T): obj is T => {
   try {
     const expect = type.name;
     return typeof obj !== "object" || obj === null
       ? false
-      : obj.constructor.name == expect;
+      : obj.constructor.name === expect;
   } catch (_) {
     return false;
   }
-}
+};
 
 /**
  * Checks if a GraphQL named type is deprecated.
@@ -67,14 +67,14 @@ export function instanceOf<T>(obj: unknown, type: new () => T): obj is T {
  * @param obj - an instance of `T`.
  *
  */
-export function isDeprecated<T>(obj: T): obj is DeprecatedType<T> {
+export const isDeprecated = <T>(obj: T): obj is DeprecatedType<T> => {
   return (
     typeof obj === "object" &&
     obj !== null &&
     (("isDeprecated" in obj && obj.isDeprecated === true) ||
       ("deprecationReason" in obj && typeof obj.deprecationReason === "string"))
   );
-}
+};
 
 /**
  * Checks if a GraphQL type a GraphQL operation (query, mutation, subscription).
@@ -82,6 +82,6 @@ export function isDeprecated<T>(obj: T): obj is DeprecatedType<T> {
  * @param type - a GraphQL type.
  *
  */
-export function isOperation(type: unknown): type is GraphQLOperationType {
+export const isOperation = (type: unknown): type is GraphQLOperationType => {
   return typeof type === "object" && type !== null && "type" in type;
-}
+};
diff --git a/packages/graphql/src/introspection.ts b/packages/graphql/src/introspection.ts
index 13e5a497..a18dbd61 100644
--- a/packages/graphql/src/introspection.ts
+++ b/packages/graphql/src/introspection.ts
@@ -55,10 +55,10 @@ export { getDirectiveValues, getNamedType, printSchema } from "graphql";
  * @returns a map of GraphQL named types for the matching GraphQL type, or undefined if no match.
  *
  */
-export function getTypeFromSchema<T>(
+export const getTypeFromSchema = <T>(
   schema: Maybe<GraphQLSchema>,
   type: unknown,
-): Maybe<Record<string, T>> {
+): Maybe<Record<string, T>> => {
   if (!schema) {
     return undefined;
   }
@@ -82,10 +82,16 @@ export function getTypeFromSchema<T>(
   const typeMap = schema.getTypeMap();
 
   return Object.keys(typeMap)
-    .filter((key) => excludeListRegExp.test(key))
-    .filter((key) => instanceOf(typeMap[key], type as never))
-    .reduce((res, key) => ({ ...res, [key]: typeMap[key] }), {});
-}
+    .filter((key) => {
+      return excludeListRegExp.test(key);
+    })
+    .filter((key) => {
+      return instanceOf(typeMap[key], type as never);
+    })
+    .reduce((res, key) => {
+      return { ...res, [key]: typeMap[key] };
+    }, {});
+};
 
 /**
  * Type guard for type with an AST node property.
@@ -97,9 +103,9 @@ export function getTypeFromSchema<T>(
  * @returns `true` if the entity has an AST node property, else `false`.
  *
  */
-export function hasAstNode<T>(node: T): node is AstNodeType<T> {
+export const hasAstNode = <T>(node: T): node is AstNodeType<T> => {
   return typeof (node as Record<string, unknown>)["astNode"] === "object";
-}
+};
 
 /**
  * Checks if a schema entity as a directive belonging to a defined set.
@@ -110,10 +116,10 @@ export function hasAstNode<T>(node: T): node is AstNodeType<T> {
  * @returns `true` if the entity has at least one directive matching, else `false`.
  *
  */
-export function hasDirective(
+export const hasDirective = (
   entity: unknown,
   directives: Maybe<string[] | string>,
-): boolean {
+): boolean => {
   if (
     !hasAstNode(entity) ||
     !directives ||
@@ -125,11 +131,11 @@ export function hasDirective(
   const directiveList = Array.isArray(directives) ? directives : [directives]; // backward_compatibility
 
   return (
-    entity.astNode.directives.findIndex((directiveNode: DirectiveNode) =>
-      directiveList.includes(directiveNode.name.value),
-    ) > -1
+    entity.astNode.directives.findIndex((directiveNode: DirectiveNode) => {
+      return directiveList.includes(directiveNode.name.value);
+    }) > -1
   );
-}
+};
 
 /**
  * Returns a schema entity's list of directives matching a defined set.
@@ -140,10 +146,10 @@ export function hasDirective(
  * @returns a list of GraphQL directives matching the set, else `false`.
  *
  */
-export function getDirective(
+export const getDirective = (
   entity: unknown,
   directives: Maybe<string[] | string>,
-): GraphQLDirective[] {
+): GraphQLDirective[] => {
   if (
     !hasAstNode(entity) ||
     !directives ||
@@ -155,45 +161,19 @@ export function getDirective(
   const directiveList = Array.isArray(directives) ? directives : [directives]; // backward_compatibility
 
   return entity.astNode.directives
-    .filter((directiveNode: DirectiveDefinitionNode) =>
-      directiveList.includes(directiveNode.name.value),
-    )
-    .map(
-      (directiveNode: DirectiveDefinitionNode) =>
-        new GraphQLDirective({
-          name: directiveNode.name.value,
-          description: directiveNode.description?.value,
-          locations: [],
-          extensions: undefined,
-          astNode: directiveNode,
-        }),
-    );
-}
-
-/**
- * Returns one directive's argument's value linked to a GraphQL schema type.
- * It calls {@link getTypeDirectiveValues} and returns a matching record.
- *
- * @param directive - a GraphQL directive defined in the schema.
- * @param type - the GraphQL schema type to parse.
- * @param argName - the name of the GraphQL directive argument to fetch the value from.
- *
- * @returns a record k/v with `argName` as key and the argument's value.
- *
- */
-export function getTypeDirectiveArgValue(
-  directive: GraphQLDirective,
-  node: unknown,
-  argName: string,
-): Maybe<Record<string, unknown>> {
-  const args = getTypeDirectiveValues(directive, node);
-
-  if (!args || !args[argName]) {
-    throw new Error(`Directive argument '${argName}' not found!`);
-  }
-
-  return args[argName] as Maybe<Record<string, unknown>>;
-}
+    .filter((directiveNode: DirectiveDefinitionNode): boolean => {
+      return directiveList.includes(directiveNode.name.value);
+    })
+    .map((directiveNode: DirectiveDefinitionNode): GraphQLDirective => {
+      return new GraphQLDirective({
+        name: directiveNode.name.value,
+        description: directiveNode.description?.value,
+        locations: [],
+        extensions: undefined,
+        astNode: directiveNode,
+      });
+    }) as GraphQLDirective[];
+};
 
 /**
  * Returns all directive's arguments' values linked to a GraphQL schema type.
@@ -204,10 +184,10 @@ export function getTypeDirectiveArgValue(
  * @returns a record k/v with arguments' name as keys and arguments' value.
  *
  */
-export function getTypeDirectiveValues(
+export const getTypeDirectiveValues = (
   directive: GraphQLDirective,
   type: unknown,
-): Maybe<Record<string, unknown>> {
+): Maybe<Record<string, unknown>> => {
   if (hasAstNode(type)) {
     return getDirectiveValues(
       directive,
@@ -222,7 +202,32 @@ export function getTypeDirectiveValues(
       readonly directives?: readonly DirectiveNode[];
     },
   );
-}
+};
+
+/**
+ * Returns one directive's argument's value linked to a GraphQL schema type.
+ * It calls {@link getTypeDirectiveValues} and returns a matching record.
+ *
+ * @param directive - a GraphQL directive defined in the schema.
+ * @param type - the GraphQL schema type to parse.
+ * @param argName - the name of the GraphQL directive argument to fetch the value from.
+ *
+ * @returns a record k/v with `argName` as key and the argument's value.
+ *
+ */
+export const getTypeDirectiveArgValue = (
+  directive: GraphQLDirective,
+  node: unknown,
+  argName: string,
+): Maybe<Record<string, unknown>> => {
+  const args = getTypeDirectiveValues(directive, node);
+
+  if (!args?.[argName]) {
+    throw new Error(`Directive argument '${argName}' not found!`);
+  }
+
+  return args[argName] as Maybe<Record<string, unknown>>;
+};
 
 /**
  * Returns the fields from a GraphQL schema type.
@@ -238,7 +243,7 @@ export function getTypeDirectiveValues(
  * @returns a map of fields as k/v records, or `fallback` value if no fields available.
  *
  */
-export function __getFields<T, V>(
+export const _getFields = <T, V>(
   type: T,
   /**
    * @param fieldMap - a field map to be processed.
@@ -246,7 +251,7 @@ export function __getFields<T, V>(
    */
   processor?: (fieldMap: Record<string, unknown>) => V,
   fallback?: V,
-): GraphQLFieldMap<unknown, unknown> | GraphQLInputFieldMap | V {
+): GraphQLFieldMap<unknown, unknown> | GraphQLInputFieldMap | V => {
   if (
     !(
       typeof type === "object" &&
@@ -265,7 +270,7 @@ export function __getFields<T, V>(
   }
 
   return fieldMap;
-}
+};
 
 /**
  * Returns fields map for a GraphQL operation type (query, mutation, subscription...).
@@ -279,19 +284,19 @@ export function __getFields<T, V>(
  * @returns a map of fields as k/v records.
  *
  */
-export function getOperation(
+export const getOperation = (
   operationType?: unknown,
-): Record<string, GraphQLOperationType> {
-  return __getFields(
+): Record<string, GraphQLOperationType> => {
+  return _getFields(
     operationType,
-    (fieldMap) =>
-      Object.keys(fieldMap).reduce(
-        (res, key) => ({ ...res, [key]: fieldMap[key] }),
-        {},
-      ),
+    (fieldMap) => {
+      return Object.keys(fieldMap).reduce((res, key) => {
+        return { ...res, [key]: fieldMap[key] };
+      }, {});
+    },
     {},
   ) as Record<string, GraphQLOperationType>;
-}
+};
 
 /**
  * Returns fields map for a GraphQL schema type.
@@ -303,17 +308,19 @@ export function getOperation(
  * @returns a list of fields of type object.
  *
  */
-export function getFields(type: unknown): unknown[] {
-  return __getFields(
+export const getFields = (type: unknown): unknown[] => {
+  return _getFields(
     type,
     (fieldMap) => {
       const res: unknown[] = [];
-      Object.keys(fieldMap).forEach((name: string) => res.push(fieldMap[name]));
+      Object.keys(fieldMap).forEach((name: string) => {
+        return res.push(fieldMap[name]);
+      });
       return res;
     },
     [],
   ) as unknown[];
-}
+};
 
 /**
  * Resolves the name of a GraphQL schema type.
@@ -324,7 +331,10 @@ export function getFields(type: unknown): unknown[] {
  * @returns the type's name, or `defaultName`.
  *
  */
-export function getTypeName(type: unknown, defaultName: string = ""): string {
+export const getTypeName = (
+  type: unknown,
+  defaultName: string = "",
+): string => {
   if (!(typeof type === "object" && type !== null)) {
     return defaultName;
   }
@@ -338,7 +348,7 @@ export function getTypeName(type: unknown, defaultName: string = ""): string {
   }
 
   return defaultName;
-}
+};
 
 /**
  * Returns an introspection map of the GraphQL schema.
@@ -408,7 +418,7 @@ export function getTypeName(type: unknown, defaultName: string = ""): string {
  * ```
  *
  */
-export function getSchemaMap(schema: Maybe<GraphQLSchema>): SchemaMap {
+export const getSchemaMap = (schema: Maybe<GraphQLSchema>): SchemaMap => {
   return {
     ["queries" as SchemaEntity]: getOperation(
       schema?.getQueryType() ?? undefined,
@@ -447,4 +457,4 @@ export function getSchemaMap(schema: Maybe<GraphQLSchema>): SchemaMap {
       GraphQLScalarType,
     ),
   };
-}
+};
diff --git a/packages/graphql/src/loader.ts b/packages/graphql/src/loader.ts
index f40a95bf..b787287f 100644
--- a/packages/graphql/src/loader.ts
+++ b/packages/graphql/src/loader.ts
@@ -38,7 +38,7 @@ import type {
  * ```
  */
 
-export async function loadSchema(
+export const loadSchema = async (
   schemaLocation: string,
   options: LoadSchemaOptions & {
     /**
@@ -47,7 +47,7 @@ export async function loadSchema(
      */
     rootTypes?: Partial<Record<OperationTypeNode, string>>;
   },
-): Promise<GraphQLSchema> {
+): Promise<GraphQLSchema> => {
   let rootTypes = undefined;
 
   if (typeof options !== "undefined" && "rootTypes" in options) {
@@ -75,7 +75,7 @@ export async function loadSchema(
   };
 
   return new GraphQLSchema(config);
-}
+};
 /**
  * Asynchronously returns a valid loaders list for {@link loadSchema} based on the plugin config.
  * Import each loader package, and instantiate a loader object.
@@ -103,9 +103,9 @@ export async function loadSchema(
  * ```
  */
 
-export async function getDocumentLoaders(
+export const getDocumentLoaders = async (
   loadersList: Maybe<LoaderOption>,
-): Promise<Maybe<LoadSchemaOptions>> {
+): Promise<Maybe<LoadSchemaOptions>> => {
   const loaders: Loader[] = [];
   const loaderOptions: PackageOptionsConfig = {};
 
@@ -137,4 +137,4 @@ export async function getDocumentLoaders(
     throw new Error("No GraphQL document loaders available.");
   }
   return { ...loaderOptions, loaders };
-}
+};
diff --git a/packages/graphql/src/relation.ts b/packages/graphql/src/relation.ts
index 8b3a8c2a..e392799c 100644
--- a/packages/graphql/src/relation.ts
+++ b/packages/graphql/src/relation.ts
@@ -28,7 +28,7 @@ import type {
   SchemaMap,
 } from "@graphql-markdown/types";
 
-import { __getFields } from "./introspection";
+import { _getFields } from "./introspection";
 import { isGraphQLFieldType } from "./guard";
 
 /**
@@ -56,7 +56,7 @@ type RelationOfCallbackFunction<T> = (
  * @returns a record map of type `relations`.
  *
  */
-function mapRelationOf<
+const mapRelationOf = <
   T,
   R extends ReturnType<IGetRelation<T>> = ReturnType<IGetRelation<T>>,
 >(
@@ -64,7 +64,7 @@ function mapRelationOf<
   relations: R,
   schemaMap: Maybe<SchemaMap>,
   callback: RelationOfCallbackFunction<T>,
-): R {
+): R => {
   if (!schemaMap) {
     return {} as R;
   }
@@ -85,7 +85,7 @@ function mapRelationOf<
   }
 
   return relations;
-}
+};
 
 /**
  * Returns a map of operations (queries, mutations, subscriptions) where the GraphQL schema type is the return type.
@@ -125,13 +125,14 @@ export const getRelationOfReturn: IGetRelation<GraphQLOperationType> = (
         type.name
     ) {
       if (
-        !results.find(
-          (r: unknown) =>
+        !results.find((r: unknown) => {
+          return (
             typeof r === "object" &&
             r !== null &&
             "name" in r &&
-            r.name === relationName,
-        )
+            r.name === relationName
+          );
+        })
       ) {
         results.push(relationType);
       }
@@ -189,7 +190,7 @@ export const getRelationOfField: IGetRelation<RelationOfField> = <T>(
     const paramFieldArgs = isGraphQLFieldType(relationType)
       ? relationType.args
       : {};
-    const fieldMap = __getFields(relationType, undefined, {});
+    const fieldMap = _getFields(relationType, undefined, {});
 
     const fields = Object.assign({}, paramFieldArgs, fieldMap);
     for (const fieldDef of Object.values(fields)) {
@@ -198,11 +199,12 @@ export const getRelationOfField: IGetRelation<RelationOfField> = <T>(
         getNamedType(fieldDef.type as Maybe<GraphQLType>)?.name === type.name
       ) {
         if (
-          !results.find(
-            (r) =>
-              r.toString() === key ||
-              (typeof r === "object" && "name" in r && r.name === key),
-          )
+          !results.find((r) => {
+            return (
+              String(r) === key ||
+              (typeof r === "object" && "name" in r && r.name === key)
+            );
+          })
         ) {
           results.push(relationType);
         }
@@ -250,13 +252,16 @@ export const getRelationOfUnion: IGetRelation<GraphQLUnionType> = <T>(
     if (
       isNamedType(type) &&
       isUnionType(relationType) &&
-      relationType.getTypes().find((subType) => subType.name === type.name)
+      relationType.getTypes().find((subType) => {
+        return subType.name === type.name;
+      })
     ) {
       if (
-        !results.find(
-          (r) =>
-            typeof r === "object" && "name" in r && r.name === relationName,
-        )
+        !results.find((r) => {
+          return (
+            typeof r === "object" && "name" in r && r.name === relationName
+          );
+        })
       ) {
         results.push(relationType);
       }
@@ -304,13 +309,16 @@ export const getRelationOfInterface: IGetRelation<RelationOfInterface> = <T>(
     if (
       isNamedType(type) &&
       (isObjectType(relationType) || isInterfaceType(relationType)) &&
-      relationType.getInterfaces().find((subType) => subType.name === type.name)
+      relationType.getInterfaces().find((subType) => {
+        return subType.name === type.name;
+      })
     ) {
       if (
-        !results.find(
-          (r) =>
-            typeof r === "object" && "name" in r && r.name === relationName,
-        )
+        !results.find((r) => {
+          return (
+            typeof r === "object" && "name" in r && r.name === relationName
+          );
+        })
       ) {
         results.push(relationType);
       }
diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts
index fb66930e..119530c9 100644
--- a/packages/logger/src/index.ts
+++ b/packages/logger/src/index.ts
@@ -25,31 +25,6 @@ export enum LogLevel {
   warn = "warn",
 }
 
-/**
- * Logs a message by calling the active logger instance.
- *
- * @remarks
- * If a log level is not supported by the logger instance, then it defaults to `"info"`.
- *
- * @param message - a string to be logged.
- * @param level - optional log level, `"info"` by default.
- *
- * @example
- * ```js
- * import { log } from "@graphql-markdown/utils/logger";
- *
- * log("Info message"); // Expected console output "Info message"
- * ```
- *
- */
-export function log(
-  message: string,
-  level: LogLevel | keyof typeof LogLevel = LogLevel.info,
-): void {
-  Logger();
-  global.logger?._log(message, level);
-}
-
 /**
  * Instantiate a logger module.
  * By default, the logger module uses `global.console`
@@ -90,4 +65,29 @@ export const Logger = (moduleName?: string): void => {
   global.logger = { instance, _log };
 };
 
+/**
+ * Logs a message by calling the active logger instance.
+ *
+ * @remarks
+ * If a log level is not supported by the logger instance, then it defaults to `"info"`.
+ *
+ * @param message - a string to be logged.
+ * @param level - optional log level, `"info"` by default.
+ *
+ * @example
+ * ```js
+ * import { log } from "@graphql-markdown/utils/logger";
+ *
+ * log("Info message"); // Expected console output "Info message"
+ * ```
+ *
+ */
+export const log = (
+  message: string,
+  level: LogLevel | keyof typeof LogLevel = LogLevel.info,
+): void => {
+  Logger();
+  global.logger?._log(message, level);
+};
+
 export default Logger;
diff --git a/packages/printer-legacy/src/badge.ts b/packages/printer-legacy/src/badge.ts
index cb54be29..2d8ed041 100644
--- a/packages/printer-legacy/src/badge.ts
+++ b/packages/printer-legacy/src/badge.ts
@@ -70,6 +70,12 @@ export const getTypeBadges = (
   return badges;
 };
 
+export const printBadge = ({ text, classname }: Badge): MDXString => {
+  const textString = typeof text === "string" ? text : text.singular;
+  const formattedText = escapeMDX(textString);
+  return `<Badge class="badge ${classname}" text="${formattedText}"/>` as MDXString;
+};
+
 export const printBadges = (
   type: unknown,
   options: PrintTypeOptions,
@@ -89,12 +95,8 @@ export const printBadges = (
   }
 
   return badges
-    .map((badge): MDXString => printBadge(badge))
+    .map((badge): MDXString => {
+      return printBadge(badge);
+    })
     .join(" ") as MDXString;
 };
-
-export const printBadge = ({ text, classname }: Badge): MDXString => {
-  const textString = typeof text === "string" ? text : text.singular;
-  const formattedText = escapeMDX(textString);
-  return `<Badge class="badge ${classname}" text="${formattedText}"/>` as MDXString;
-};
diff --git a/packages/printer-legacy/src/code.ts b/packages/printer-legacy/src/code.ts
index 04be7855..099b5fdd 100644
--- a/packages/printer-legacy/src/code.ts
+++ b/packages/printer-legacy/src/code.ts
@@ -13,38 +13,6 @@ import {
   MARKDOWN_CODE_INDENTATION,
 } from "./const/strings";
 
-export const printCodeField = (
-  type: unknown,
-  options?: PrintTypeOptions,
-  indentationLevel: number = 0,
-): MDXString | string => {
-  if (typeof type !== "object" || type === null || !("type" in type)) {
-    return "";
-  }
-
-  const skipDirective =
-    options &&
-    "skipDocDirective" in options &&
-    hasDirective(type, options.skipDocDirective);
-  const skipDeprecated =
-    options &&
-    "deprecated" in options &&
-    options.deprecated === "skip" &&
-    isDeprecated(type);
-
-  if (skipDirective || skipDeprecated) {
-    return "";
-  }
-
-  let code = `${getTypeName(type)}`;
-  code += printCodeArguments(type, indentationLevel + 1);
-  code += `: ${getTypeName(type.type)}`;
-  code += isDeprecated(type) ? ` @${DEPRECATED}` : "";
-  code += MARKDOWN_EOL;
-
-  return code;
-};
-
 export const printCodeArguments = (
   type: unknown,
   indentationLevel: number = 1,
@@ -78,3 +46,37 @@ export const printCodeArguments = (
 
   return code;
 };
+
+export const printCodeField = (
+  type: unknown,
+  options?: PrintTypeOptions,
+  indentationLevel: number = 0,
+): MDXString | string => {
+  if (typeof type !== "object" || type === null || !("type" in type)) {
+    return "";
+  }
+
+  const skipDirective =
+    (options &&
+      "skipDocDirective" in options &&
+      hasDirective(type, options.skipDocDirective)) ??
+    false;
+  const skipDeprecated =
+    (options &&
+      "deprecated" in options &&
+      options.deprecated === "skip" &&
+      isDeprecated(type)) ??
+    false;
+
+  if (skipDirective || skipDeprecated) {
+    return "";
+  }
+
+  let code = `${getTypeName(type)}`;
+  code += printCodeArguments(type, indentationLevel + 1);
+  code += `: ${getTypeName(type.type)}`;
+  code += isDeprecated(type) ? ` @${DEPRECATED}` : "";
+  code += MARKDOWN_EOL;
+
+  return code;
+};
diff --git a/packages/printer-legacy/src/common.ts b/packages/printer-legacy/src/common.ts
index 29458fbb..2d6c9524 100644
--- a/packages/printer-legacy/src/common.ts
+++ b/packages/printer-legacy/src/common.ts
@@ -1,7 +1,6 @@
 import type {
   PrintTypeOptions,
   MDXString,
-  CustomDirectiveMapItem,
   Maybe,
 } from "@graphql-markdown/types";
 
@@ -31,11 +30,18 @@ export const printCustomDirectives = (
     return "";
   }
 
-  const content = Object.values<CustomDirectiveMapItem>(constDirectiveMap)
-    .map((constDirectiveOption) =>
-      getCustomDirectiveResolver("descriptor", type, constDirectiveOption, ""),
-    )
-    .filter((text) => typeof text === "string" && text.length > 0)
+  const content = Object.values(constDirectiveMap)
+    .map((constDirectiveOption) => {
+      return getCustomDirectiveResolver(
+        "descriptor",
+        type,
+        constDirectiveOption,
+        "",
+      );
+    })
+    .filter((text) => {
+      return typeof text === "string" && text.length > 0;
+    })
     .join(MARKDOWN_EOP);
 
   return `${MARKDOWN_EOP}${content}`;
diff --git a/packages/printer-legacy/src/directive.ts b/packages/printer-legacy/src/directive.ts
index f3e83f22..77a415d7 100644
--- a/packages/printer-legacy/src/directive.ts
+++ b/packages/printer-legacy/src/directive.ts
@@ -14,33 +14,21 @@ import { SectionLevels } from "./const/options";
 import { printLink } from "./link";
 import { printBadge } from "./badge";
 
-export const printCustomDirectives = (
+export const getCustomDirectiveResolver = (
+  resolver: CustomDirectiveResolver,
   type: unknown,
-  options: PrintTypeOptions,
-): string => {
-  const constDirectiveMap = getConstDirectiveMap(
-    type,
-    options.customDirectives,
-  );
-
-  if (!constDirectiveMap || Object.keys(constDirectiveMap).length < 1) {
-    return "";
-  }
-
-  const directives = Object.values<CustomDirectiveMapItem>(constDirectiveMap)
-    .map(
-      (constDirectiveOption): Maybe<string> =>
-        printCustomDirective(type, constDirectiveOption, options),
-    )
-    .filter((value): boolean => typeof value !== "undefined");
-
-  if (directives.length === 0) {
-    return "";
+  constDirectiveOption: CustomDirectiveMapItem,
+  fallback?: Maybe<string>,
+): Maybe<string> => {
+  if (
+    typeof constDirectiveOption === "undefined" ||
+    typeof constDirectiveOption.type !== "object" ||
+    typeof constDirectiveOption[resolver] !== "function"
+  ) {
+    return fallback;
   }
 
-  const content = directives.join(MARKDOWN_EOP);
-
-  return `${SectionLevels.LEVEL_3} Directives${MARKDOWN_EOP}${content}${MARKDOWN_EOP}`;
+  return constDirectiveOption[resolver]!(constDirectiveOption.type, type);
 };
 
 export const printCustomDirective = (
@@ -65,6 +53,36 @@ export const printCustomDirective = (
   return `${SectionLevels.LEVEL_4} ${typeNameLink}${MARKDOWN_EOL}> ${description}${MARKDOWN_EOL}> `;
 };
 
+export const printCustomDirectives = (
+  type: unknown,
+  options: PrintTypeOptions,
+): string => {
+  const constDirectiveMap = getConstDirectiveMap(
+    type,
+    options.customDirectives,
+  );
+
+  if (!constDirectiveMap || Object.keys(constDirectiveMap).length < 1) {
+    return "";
+  }
+
+  const directives = Object.values(constDirectiveMap)
+    .map((constDirectiveOption): Maybe<string> => {
+      return printCustomDirective(type, constDirectiveOption, options);
+    })
+    .filter((value): boolean => {
+      return typeof value !== "undefined";
+    });
+
+  if (directives.length === 0) {
+    return "";
+  }
+
+  const content = directives.join(MARKDOWN_EOP);
+
+  return `${SectionLevels.LEVEL_3} Directives${MARKDOWN_EOP}${content}${MARKDOWN_EOP}`;
+};
+
 export const getCustomTags = (
   type: unknown,
   options: PrintTypeOptions,
@@ -82,14 +100,13 @@ export const getCustomTags = (
     return [];
   }
 
-  return Object.values<CustomDirectiveMapItem>(constDirectiveMap)
-    .map(
-      (constDirectiveOption): Maybe<string> =>
-        getCustomDirectiveResolver("tag", type, constDirectiveOption),
-    )
-    .filter(
-      (value): boolean => typeof value !== "undefined",
-    ) as unknown as Badge[];
+  return Object.values(constDirectiveMap)
+    .map((constDirectiveOption): Maybe<string> => {
+      return getCustomDirectiveResolver("tag", type, constDirectiveOption);
+    })
+    .filter((value): boolean => {
+      return typeof value !== "undefined";
+    }) as unknown as Badge[];
 };
 
 export const printCustomTags = (
@@ -103,23 +120,8 @@ export const printCustomTags = (
   }
 
   return badges
-    .map((badge): MDXString => printBadge(badge))
+    .map((badge): MDXString => {
+      return printBadge(badge);
+    })
     .join(" ") as MDXString;
 };
-
-export const getCustomDirectiveResolver = (
-  resolver: CustomDirectiveResolver,
-  type: unknown,
-  constDirectiveOption: CustomDirectiveMapItem,
-  fallback?: Maybe<string>,
-): Maybe<string> => {
-  if (
-    typeof constDirectiveOption === "undefined" ||
-    typeof constDirectiveOption.type !== "object" ||
-    typeof constDirectiveOption[resolver] !== "function"
-  ) {
-    return fallback;
-  }
-
-  return constDirectiveOption[resolver]!(constDirectiveOption.type, type);
-};
diff --git a/packages/printer-legacy/src/graphql/enum.ts b/packages/printer-legacy/src/graphql/enum.ts
index f6cc3f77..dbd71e4b 100644
--- a/packages/printer-legacy/src/graphql/enum.ts
+++ b/packages/printer-legacy/src/graphql/enum.ts
@@ -22,12 +22,7 @@ export const printEnumMetadata = (
     return "";
   }
 
-  return printMetadataSection(
-    type,
-    (type as GraphQLEnumType).getValues(),
-    "Values",
-    options,
-  );
+  return printMetadataSection(type, type.getValues(), "Values", options);
 };
 
 export const printCodeEnum = (
diff --git a/packages/printer-legacy/src/link.ts b/packages/printer-legacy/src/link.ts
index 498f6eb9..6e9acaa7 100644
--- a/packages/printer-legacy/src/link.ts
+++ b/packages/printer-legacy/src/link.ts
@@ -54,6 +54,19 @@ export const getLinkCategory = (type: unknown): Maybe<TypeLocale> => {
   return undefined;
 };
 
+export const hasOptionWithAttributes = (options: PrintLinkOptions): boolean => {
+  return "withAttributes" in options && options.withAttributes === true;
+};
+
+export const hasOptionParentType = (options: PrintLinkOptions): boolean => {
+  return (
+    "parentTypePrefix" in options &&
+    options.parentTypePrefix === true &&
+    "parentType" in options &&
+    typeof options.parentType !== "undefined"
+  );
+};
+
 export const toLink = (
   type: unknown,
   name: string,
@@ -138,28 +151,32 @@ export const getRelationLink = (
   return toLink(type, type.name as string, category, options);
 };
 
-export const printParentLink = (
+export const printLinkAttributes = (
   type: unknown,
-  options: PrintLinkOptions,
-): MDXString | string => {
-  if (typeof type !== "object" || type === null || !("type" in type)) {
-    return "";
+  text: Maybe<string> = "",
+): string => {
+  if (typeof type !== "object" || type === null) {
+    return text ?? "";
   }
 
-  return `<Bullet />${printLink(type.type, {
-    ...options,
-    withAttributes: true,
-  })}` as MDXString;
-};
+  if (
+    !isLeafType(type) &&
+    "ofType" in type &&
+    typeof type.ofType !== "undefined"
+  ) {
+    text = printLinkAttributes(type.ofType as GraphQLNamedType, text);
+  }
 
-export const hasOptionWithAttributes = (options: PrintLinkOptions): boolean =>
-  "withAttributes" in options && options.withAttributes === true;
+  if (isListType(type)) {
+    return `[${text}]`;
+  }
 
-export const hasOptionParentType = (options: PrintLinkOptions): boolean =>
-  "parentTypePrefix" in options &&
-  options.parentTypePrefix === true &&
-  "parentType" in options &&
-  typeof options.parentType !== "undefined";
+  if (isNonNullType(type)) {
+    return `${text}!`;
+  }
+
+  return text ?? "";
+};
 
 export const printLink = (type: unknown, options: PrintLinkOptions): string => {
   if (typeof type !== "object" || type === null) {
@@ -185,29 +202,16 @@ export const printLink = (type: unknown, options: PrintLinkOptions): string => {
   return `[\`${text}\`](${link.url})`;
 };
 
-export const printLinkAttributes = (
+export const printParentLink = (
   type: unknown,
-  text: Maybe<string> = "",
-): string => {
-  if (typeof type !== "object" || type === null) {
-    return text ?? "";
-  }
-
-  if (
-    !isLeafType(type) &&
-    "ofType" in type &&
-    typeof type.ofType != "undefined"
-  ) {
-    text = printLinkAttributes(type.ofType as GraphQLNamedType, text);
-  }
-
-  if (isListType(type)) {
-    return `[${text}]`;
-  }
-
-  if (isNonNullType(type)) {
-    return `${text}!`;
+  options: PrintLinkOptions,
+): MDXString | string => {
+  if (typeof type !== "object" || type === null || !("type" in type)) {
+    return "";
   }
 
-  return text ?? "";
+  return `<Bullet />${printLink(type.type, {
+    ...options,
+    withAttributes: true,
+  })}` as MDXString;
 };
diff --git a/packages/printer-legacy/src/printer.ts b/packages/printer-legacy/src/printer.ts
index a9d2d978..b6e1f45d 100644
--- a/packages/printer-legacy/src/printer.ts
+++ b/packages/printer-legacy/src/printer.ts
@@ -70,6 +70,12 @@ import { DEFAULT_OPTIONS, PRINT_TYPE_DEFAULT_OPTIONS } from "./const/options";
 export class Printer implements IPrinter {
   static options: Maybe<PrintTypeOptions>;
 
+  static printDescription = printDescription;
+
+  static printCustomDirectives = printCustomDirectives;
+
+  static printCustomTags = printCustomTags;
+
   static init(
     schema: Maybe<GraphQLSchema>,
     baseURL: Maybe<string> = "schema",
@@ -124,7 +130,7 @@ export class Printer implements IPrinter {
     options: PrintTypeOptions,
   ): string => {
     const { toc, pagination } = options.header ?? DEFAULT_OPTIONS.header!;
-    const pagination_buttons = pagination!
+    const paginationButtons = pagination!
       ? []
       : ["pagination_next: null", "pagination_prev: null"];
 
@@ -133,15 +139,13 @@ export class Printer implements IPrinter {
       `id: ${id}`,
       `title: ${title}`,
       `hide_table_of_contents: ${!toc}`,
-      ...pagination_buttons,
+      ...paginationButtons,
       FRONT_MATTER,
     ];
 
     return header.join(MARKDOWN_EOL);
   };
 
-  static printDescription = printDescription;
-
   static printCode = (type: unknown, options: PrintTypeOptions): string => {
     let code = "";
 
@@ -184,10 +188,6 @@ export class Printer implements IPrinter {
     return MARKDOWN_SOC + code.trim() + MARKDOWN_EOC;
   };
 
-  static printCustomDirectives = printCustomDirectives;
-
-  static printCustomTags = printCustomTags;
-
   static printTypeMetadata = (
     type: unknown,
     options: PrintTypeOptions,
diff --git a/packages/printer-legacy/src/relation.ts b/packages/printer-legacy/src/relation.ts
index d711fd45..2c85d596 100644
--- a/packages/printer-legacy/src/relation.ts
+++ b/packages/printer-legacy/src/relation.ts
@@ -3,6 +3,7 @@ import type {
   MDXString,
   Maybe,
   PrintTypeOptions,
+  RelationOf,
   RootTypeName,
   TypeLocale,
 } from "@graphql-markdown/types";
@@ -79,7 +80,9 @@ export const printRelationOf = <T>(
   }
 
   const content = [...data]
-    .sort((a, b) => a.localeCompare(b))
+    .sort((a, b) => {
+      return a.localeCompare(b);
+    })
     .join("<Bullet />") as MDXString;
 
   return `${SectionLevels.LEVEL_3} ${section}${MARKDOWN_EOP}${content}${MARKDOWN_EOP}` as MDXString;
@@ -89,16 +92,17 @@ export const printRelations = (
   type: unknown,
   options: PrintTypeOptions,
 ): MDXString | string => {
-  const relations: Record<string, IGetRelation<unknown>> = {
-    "Returned by": getRelationOfReturn,
-    "Member of": getRelationOfField,
-    "Implemented by": getRelationOfImplementation,
+  const relations: Record<string, RelationOf> = {
+    returnedBy: { section: "Returned by", getRelation: getRelationOfReturn },
+    memberOf: { section: "Member Of", getRelation: getRelationOfField },
+    implementedBy: {
+      section: "Implemented By",
+      getRelation: getRelationOfImplementation,
+    },
   };
 
   let data = "";
-  for (const [section, getRelation] of Object.entries<IGetRelation<unknown>>(
-    relations,
-  )) {
+  for (const { section, getRelation } of Object.values(relations)) {
     data += printRelationOf(type, section, getRelation, options);
   }
 
diff --git a/packages/printer-legacy/src/section.ts b/packages/printer-legacy/src/section.ts
index 50e6b4b8..501d0801 100644
--- a/packages/printer-legacy/src/section.ts
+++ b/packages/printer-legacy/src/section.ts
@@ -1,5 +1,5 @@
 import type {
-  GraphQLField,
+  GraphQLArgument,
   MDXString,
   PrintTypeOptions,
   SectionLevel,
@@ -31,60 +31,79 @@ export const sectionLevels: SectionLevel[] = [
   SectionLevels.LEVEL_5 as SectionLevelValue,
 ];
 
-export const printMetadataSection = (
-  type: unknown,
-  values: unknown,
-  section: string,
+export const printSectionItem = <T>(
+  type: T,
   options: PrintTypeOptions,
 ): MDXString | string => {
-  if (
-    typeof type !== "object" ||
-    type === null ||
-    !("name" in type) ||
-    !Array.isArray(values) ||
-    values.length === 0
-  ) {
+  const level =
+    "level" in options && typeof options.level === "string"
+      ? options.level
+      : SectionLevels.LEVEL_4;
+
+  const skipDirective = hasDirective(type, options.skipDocDirective);
+  const skipDeprecated = options.deprecated === "skip" && isDeprecated(type);
+
+  if (!type || skipDirective || skipDeprecated) {
     return "";
   }
 
-  switch (options.deprecated) {
-    case "group": {
-      const { fields, deprecated } = values.reduce(
-        (res, arg) => {
-          isDeprecated(arg) ? res.deprecated.push(arg) : res.fields.push(arg);
-          return res;
-        },
-        { fields: [] as unknown[], deprecated: [] as unknown[] },
-      );
+  const typeNameLink = printLink(type, {
+    ...options,
+    withAttributes: false,
+  });
+  const description = printDescription(type, options, "").replaceAll(
+    "\n",
+    `${MARKDOWN_EOL}> `,
+  );
+  const badges = printBadges(type, options);
+  const tags = printCustomTags(type, options);
+  const parentTypeLink = printParentLink(type, options);
 
-      const meta = printSection(fields, section, {
-        ...options,
-        parentType: type.name as string,
-      });
-      const deprecatedMeta = printSection(deprecated, "", {
-        ...options,
-        parentType: type.name as string,
-        level: SectionLevels.NONE as SectionLevelValue,
-        collapsible: {
-          dataOpen: HIDE_DEPRECATED,
-          dataClose: SHOW_DEPRECATED,
-        },
-      });
+  let section = `${level} ${typeNameLink}${parentTypeLink} ${badges} ${tags}${MARKDOWN_EOL}> ${description}${MARKDOWN_EOL}> `;
+  if (isGraphQLFieldType(type)) {
+    // eslint-disable-next-line @typescript-eslint/no-use-before-define
+    section += printSectionItems(type.args as GraphQLArgument[], {
+      ...options,
+      level: SectionLevels.LEVEL_5 as SectionLevelValue,
+      parentType:
+        typeof options.parentType === "undefined"
+          ? type.name
+          : `${options.parentType}.${type.name}`,
+    });
+  }
 
-      return `${meta}${deprecatedMeta}`;
-    }
+  return section as MDXString;
+};
 
-    case "default":
-    default:
-      return printSection(values, section, {
-        ...options,
-        parentType: type.name as string,
-      });
+export const printSectionItems = <V>(
+  values: V | V[],
+  options: PrintTypeOptions,
+): MDXString | string => {
+  if (!Array.isArray(values) || values.length === 0) {
+    return "";
   }
+
+  const level = (
+    "level" in options && typeof options.level === "string"
+      ? options.level
+      : SectionLevels.LEVEL_4
+  ) as SectionLevelValue;
+
+  return values
+    .map((v: V): MDXString => {
+      return (
+        v &&
+        (printSectionItem(v, {
+          ...options,
+          level,
+        }) as MDXString)
+      );
+    })
+    .join(MARKDOWN_EOP) as MDXString;
 };
 
-export const printSection = (
-  values: unknown,
+export const printSection = <V>(
+  values: V[] | readonly V[],
   section: string,
   options: PrintTypeOptions,
 ): MDXString | string => {
@@ -128,76 +147,58 @@ export const printSection = (
   return `${level} ${section}${openSection}${items}${closeSection}` as MDXString;
 };
 
-export const printSectionItems = (
-  values: unknown,
+export const printMetadataSection = <T, V>(
+  type: T,
+  values: V | V[] | readonly V[],
+  section: string,
   options: PrintTypeOptions,
 ): MDXString | string => {
-  if (!Array.isArray(values) || values.length === 0) {
+  if (
+    typeof type !== "object" ||
+    type === null ||
+    !("name" in type) ||
+    !Array.isArray(values) ||
+    values.length === 0
+  ) {
     return "";
   }
 
-  const level = (
-    "level" in options && typeof options.level === "string"
-      ? options.level
-      : SectionLevels.LEVEL_4
-  ) as SectionLevelValue;
-
-  return values
-    .map(
-      (v) =>
-        v &&
-        printSectionItem(v, {
-          ...options,
-          level,
-        }),
-    )
-    .join(MARKDOWN_EOP) as MDXString;
-};
-
-export const printSectionItem = (
-  type: unknown,
-  options: PrintTypeOptions,
-): MDXString | string => {
-  const level =
-    "level" in options && typeof options.level === "string"
-      ? options.level
-      : SectionLevels.LEVEL_4;
-
-  const skipDirective = hasDirective(type, options.skipDocDirective);
-  const skipDeprecated = options.deprecated === "skip" && isDeprecated(type);
+  switch (options.deprecated) {
+    case "group": {
+      const { fields, deprecated } = values.reduce(
+        (res, arg) => {
+          if (isDeprecated(arg)) {
+            res.deprecated.push(arg);
+          } else {
+            res.fields.push(arg);
+          }
+          return res;
+        },
+        { fields: [] as V[], deprecated: [] as V[] },
+      );
 
-  if (!type || skipDirective || skipDeprecated) {
-    return "";
-  }
+      const meta = printSection(fields, section, {
+        ...options,
+        parentType: type.name as string,
+      });
+      const deprecatedMeta = printSection(deprecated, "", {
+        ...options,
+        parentType: type.name as string,
+        level: SectionLevels.NONE as SectionLevelValue,
+        collapsible: {
+          dataOpen: HIDE_DEPRECATED,
+          dataClose: SHOW_DEPRECATED,
+        },
+      });
 
-  const typeNameLink = printLink(type, {
-    ...options,
-    withAttributes: false,
-  });
-  const description = printDescription(type, options, "").replaceAll(
-    "\n",
-    `${MARKDOWN_EOL}> `,
-  );
-  const badges = printBadges(type, options);
-  const tags = printCustomTags(type, options);
-  const parentTypeLink = printParentLink(type, options);
+      return `${meta}${deprecatedMeta}`;
+    }
 
-  let section = `${level} ${typeNameLink}${parentTypeLink} ${badges} ${tags}${MARKDOWN_EOL}> ${description}${MARKDOWN_EOL}> `;
-  if (isGraphQLFieldType(type)) {
-    section += printSectionItems(
-      (type as GraphQLField<unknown, unknown, unknown>).args,
-      {
+    case "default":
+    default:
+      return printSection(values, section, {
         ...options,
-        level: SectionLevels.LEVEL_5 as SectionLevelValue,
-        parentType:
-          typeof options.parentType === "undefined"
-            ? (type as GraphQLField<unknown, unknown, unknown>).name
-            : `${options.parentType}.${
-                (type as GraphQLField<unknown, unknown, unknown>).name
-              }`,
-      },
-    );
+        parentType: type.name as string,
+      });
   }
-
-  return section as MDXString;
 };
diff --git a/packages/types/src/core.d.ts b/packages/types/src/core.d.ts
index 0289d198..353427c9 100644
--- a/packages/types/src/core.d.ts
+++ b/packages/types/src/core.d.ts
@@ -1,38 +1,31 @@
 import type { UnnormalizedTypeDefPointer } from "@graphql-tools/load";
 import type { BaseLoaderOptions } from "@graphql-tools/utils";
 
-import type {
-  CustomDirective,
-  DirectiveName,
-  GraphQLSchema,
-  GroupByDirectiveOptions,
-  LoaderOption,
-  PackageName,
-} from ".";
-
-export type ConfigDocOptions = {
+import type { CustomDirective, DirectiveName, GraphQLSchema } from ".";
+
+export interface ConfigDocOptions {
   index?: boolean;
   pagination?: boolean;
   toc?: boolean;
-};
+}
 
 export type TypeDeprecatedOption = "default" | "group" | "skip";
 
-export type ConfigPrintTypeOptions = {
+export interface ConfigPrintTypeOptions {
   codeSection?: boolean;
   deprecated?: TypeDeprecatedOption;
   parentTypePrefix?: boolean;
   relatedTypeSection?: boolean;
   typeBadges?: boolean;
-};
+}
 
-export type DiffMethodName = string & { _opaque: typeof DiffMethodName };
-declare const DiffMethodName: unique symbol;
+export type DiffMethodName = string & { _opaque: typeof DIFF_METHOD_NAME };
+declare const DIFF_METHOD_NAME: unique symbol;
 export type TypeDiffMethod = DiffMethodName | "FORCE" | "NONE";
 
 type Pointer = UnnormalizedTypeDefPointer | string;
 
-export type ConfigOptions = {
+export interface ConfigOptions {
   baseURL?: Maybe<string>;
   customDirective?: Maybe<CustomDirective>;
   diffMethod?: Maybe<TypeDiffMethod>;
@@ -49,9 +42,9 @@ export type ConfigOptions = {
   schema?: Maybe<Pointer>;
   skipDocDirective?: Maybe<DirectiveName | DirectiveName[]>;
   tmpDir?: Maybe<string>;
-};
+}
 
-export type CliOptions = {
+export interface CliOptions {
   base?: string;
   deprecated?: TypeDeprecatedOption;
   diff?: TypeDiffMethod;
@@ -71,7 +64,7 @@ export type CliOptions = {
   schema?: Pointer;
   skip?: string[] | string;
   tmp?: string;
-};
+}
 
 export type Options = Omit<
   ConfigOptions,
@@ -98,33 +91,31 @@ export type FunctionCheckSchemaChanges = (
 
 export type GeneratorOptions = Options & { loggerModule?: string };
 
-export type GroupByDirectiveOptions = {
+export interface GroupByDirectiveOptions {
   directive: DirectiveName;
   field: string;
   fallback?: string;
-};
+}
 
-export type LoaderOption = {
-  [name: ClassName]: PackageConfig | PackageName;
-};
+export type LoaderOption = Record<ClassName, PackageConfig | PackageName>;
 
 export type PackageOptionsConfig = BaseLoaderOptions & RootTypes;
 
-export type PackageConfig = {
+export interface PackageConfig {
   module: PackageName;
   options?: PackageOptionsConfig;
-};
+}
 
-export type RootTypes = {
+export interface RootTypes {
   query?: string;
   mutation?: string;
   subscription?: string;
-};
+}
 
-export type PackageName = string & { _opaque: typeof PackageName };
-declare const PackageName: unique symbol;
+export type PackageName = string & { _opaque: typeof PACKAGE_NAME };
+declare const PACKAGE_NAME: unique symbol;
 
-export type ClassName = string & { _opaque: typeof ClassName };
-declare const ClassName: unique symbol;
+export type ClassName = string & { _opaque: typeof CLASS_NAME };
+declare const CLASS_NAME: unique symbol;
 
 export type { GraphQLProjectConfig } from "graphql-config";
diff --git a/packages/types/src/graphql.d.ts b/packages/types/src/graphql.d.ts
index 02e40f38..518438ba 100644
--- a/packages/types/src/graphql.d.ts
+++ b/packages/types/src/graphql.d.ts
@@ -12,6 +12,7 @@ import type {
   GraphQLScalarType,
   GraphQLUnionType,
   Maybe,
+  ObjectTypeDefinitionNode,
 } from ".";
 
 export type DeprecatedType<T> = Partial<{
@@ -37,7 +38,7 @@ export type SchemaEntity =
   | "subscriptions"
   | "unions";
 
-export type SchemaMap = {
+export interface SchemaMap {
   queries?: Maybe<Record<string, GraphQLOperationType>>;
   mutations?: Maybe<Record<string, GraphQLOperationType>>;
   subscriptions?: Maybe<Record<string, GraphQLOperationType>>;
@@ -48,10 +49,10 @@ export type SchemaMap = {
   enums?: Maybe<Record<string, GraphQLEnumType>>;
   inputs?: Maybe<Record<string, GraphQLInputObjectType>>;
   scalars?: Maybe<Record<string, GraphQLScalarType<unknown, unknown>>>;
-};
+}
 
-export type DirectiveName = string & { _opaque: typeof DirectiveName };
-declare const DirectiveName: unique symbol;
+export type DirectiveName = string & { _opaque: typeof DIRECTIVE_NAME };
+declare const DIRECTIVE_NAME: unique symbol;
 
 export type SchemaEntitiesGroupMap = Partial<
   Record<SchemaEntity, Record<string, Maybe<string>>>
@@ -70,6 +71,10 @@ export type RelationOfInterface = GraphQLInterfaceType | GraphQLObjectType;
 export type RelationOfImplementation = GraphQLUnionType | RelationOfInterface;
 export type ExtensionProjectConfig = Omit<ConfigOptions, "schema"> &
   Writeable<GraphQLProjectConfig>;
+export interface RelationOf {
+  section: string;
+  getRelation: IGetRelation;
+}
 export type IGetRelation<T> = (
   type: unknown,
   schemaMap: Maybe<SchemaMap>,
diff --git a/packages/types/src/helpers.d.ts b/packages/types/src/helpers.d.ts
index f1545f8c..698fa5f8 100644
--- a/packages/types/src/helpers.d.ts
+++ b/packages/types/src/helpers.d.ts
@@ -11,14 +11,10 @@ export type CustomDirectiveOptions = {
   [name in CustomDirectiveResolver]?: CustomDirectiveFunction;
 };
 
-export type CustomDirective = {
-  [name: DirectiveName]: CustomDirectiveOptions;
-};
+export type CustomDirective = Record<DirectiveName, CustomDirectiveOptions>;
 
 export type CustomDirectiveMapItem = CustomDirectiveOptions & {
   type: GraphQLDirective;
 };
 
-export type CustomDirectiveMap = {
-  [name: DirectiveName]: CustomDirectiveMapItem;
-};
+export type CustomDirectiveMap = Record<DirectiveName, CustomDirectiveMapItem>;
diff --git a/packages/types/src/index.d.ts b/packages/types/src/index.d.ts
index d40a4088..15871cc6 100644
--- a/packages/types/src/index.d.ts
+++ b/packages/types/src/index.d.ts
@@ -8,6 +8,7 @@ export type {
   GraphQLBoolean,
   GraphQLDirective,
   GraphQLEnumType,
+  GraphQLEnumValue,
   GraphQLField,
   GraphQLFieldMap,
   GraphQLFloat,
@@ -27,7 +28,10 @@ export type {
   ObjectTypeDefinitionNode,
 } from "graphql";
 
-export type { LoadSchemaOptions } from "@graphql-tools/load";
+export type {
+  LoadSchemaOptions,
+  GraphQLExtensionDeclaration,
+} from "@graphql-tools/load";
 
 export type Maybe<T> = T | null | undefined;
 
diff --git a/packages/types/src/logger.d.ts b/packages/types/src/logger.d.ts
index 85ee84c2..d04165fa 100644
--- a/packages/types/src/logger.d.ts
+++ b/packages/types/src/logger.d.ts
@@ -1,8 +1,8 @@
 type LogLevel = "debug" | "error" | "info" | "log" | "success" | "warn";
 
-export type LoggerType = {
+export interface LoggerType {
   _log: (message: string, level?: LogLevel) => void;
   instance: {
     [level in LogLevel]?: (...unknown) => void;
   };
-};
+}
diff --git a/packages/types/src/printer.d.ts b/packages/types/src/printer.d.ts
index 5db7ad87..ac53cd24 100644
--- a/packages/types/src/printer.d.ts
+++ b/packages/types/src/printer.d.ts
@@ -25,19 +25,25 @@ export type RootTypeLocale = {
   [name in RootTypeName]: TypeLocale;
 };
 
-export type PrinterConfigPrintTypeOptions = {
+export interface PrinterConfigPrintTypeOptions {
   codeSection?: boolean;
   deprecated?: TypeDeprecatedOption;
   parentTypePrefix?: boolean;
   relatedTypeSection?: boolean;
   typeBadges?: boolean;
-};
+}
 
-export type CollapsibleOption = { dataOpen: string; dataClose: string };
+export interface CollapsibleOption {
+  dataOpen: string;
+  dataClose: string;
+}
 
-export type PrintTypeHeaderOptions = { toc?: boolean; pagination?: boolean };
+export interface PrintTypeHeaderOptions {
+  toc?: boolean;
+  pagination?: boolean;
+}
 
-export type PrintTypeOptions = {
+export interface PrintTypeOptions {
   basePath: string;
   codeSection?: Maybe<boolean>;
   collapsible?: Maybe<CollapsibleOption>;
@@ -53,21 +59,23 @@ export type PrintTypeOptions = {
   typeBadges?: boolean;
   withAttributes?: boolean;
   header?: Maybe<PrintTypeHeaderOptions>;
-};
+}
 
-export type SectionLevelValue = string & { _opaque: typeof SectionLevelValue };
-declare const SectionLevelValue: unique symbol;
+export type SectionLevelValue = string & {
+  _opaque: typeof SECTION_LEVEL_VALUE;
+};
+declare const SECTION_LEVEL_VALUE: unique symbol;
 export type SectionLevel = SectionLevelValue | "####" | "#####";
 
-export type Badge = {
+export interface Badge {
   text: TypeLocale | string;
   classname: string;
-};
+}
 
-export type TypeLink = {
+export interface TypeLink {
   text: string;
   url: string;
-};
+}
 
 export type PrintLinkOptions = Partial<PrintTypeOptions> &
   Pick<
@@ -129,16 +137,16 @@ export abstract class IPrinter {
 }
 export type Printer = typeof IPrinter;
 
-export type PrinterConfig = {
+export interface PrinterConfig {
   schema: Maybe<GraphQLSchema>;
   baseURL: string;
   linkRoot: string;
-};
+}
 
-export type PrinterOptions = {
+export interface PrinterOptions {
   customDirectives?: Maybe<CustomDirectiveMap>;
   deprecated?: Maybe<TypeDeprecatedOption>;
   groups?: Maybe<SchemaEntitiesGroupMap>;
   printTypeOptions?: Maybe<ConfigPrintTypeOptions>;
   skipDocDirective?: Maybe<DirectiveName[]>;
-};
+}
diff --git a/packages/types/src/utils.d.ts b/packages/types/src/utils.d.ts
index 1ff53070..a790eb65 100644
--- a/packages/types/src/utils.d.ts
+++ b/packages/types/src/utils.d.ts
@@ -1,9 +1,12 @@
 import type { Maybe } from ".";
 
-export type Category = { category: string; slug: string };
+export interface Category {
+  category: string;
+  slug: string;
+}
 
-export type MDXString = string & { _opaque: typeof MDXString };
-declare const MDXString: unique symbol;
+export type MDXString = string & { _opaque: typeof MDX_STRING };
+declare const MDX_STRING: unique symbol;
 
 export type PrettifyCallbackFunction = (
   text: string,
diff --git a/packages/utils/src/array.ts b/packages/utils/src/array.ts
index 3d9772b9..93ff3f9e 100644
--- a/packages/utils/src/array.ts
+++ b/packages/utils/src/array.ts
@@ -31,15 +31,17 @@ import type { Maybe } from "@graphql-markdown/types";
  * @returns an array of object values, or `undefined` if `recordMap` is not a valid object.
  *
  */
-export function toArray(
+export const toArray = (
   recordMap: Maybe<Record<string, unknown>>,
-): Maybe<unknown[]> {
+): Maybe<unknown[]> => {
   if (typeof recordMap !== "object" || recordMap === null) {
     return undefined;
   }
 
-  return Object.keys(recordMap).map((key: string): unknown => recordMap[key]);
-}
+  return Object.keys(recordMap).map((key: string): unknown => {
+    return recordMap[key];
+  });
+};
 
 /**
  * Returns a k/v object from an array of objects with a `name` property.
@@ -71,24 +73,21 @@ export function toArray(
  * ```
  *
  */
-export function convertArrayToMapObject<T>(
+export const convertArrayToMapObject = <T>(
   list: Maybe<T[]>,
-): Maybe<Record<string, T>> {
+): Maybe<Record<string, T>> => {
   if (!Array.isArray(list)) {
     return undefined;
   }
 
-  return list.reduce(
-    (result, entry: T) => {
-      if (typeof entry === "object" && entry !== null) {
-        const key = "name" in entry && entry.name ? String(entry.name) : null;
-        if (key === null) {
-          return result;
-        }
-        result[key] = entry;
+  return list.reduce<Record<string, T>>((result, entry: T) => {
+    if (typeof entry === "object" && entry !== null) {
+      const key = "name" in entry && entry.name ? String(entry.name) : null;
+      if (key === null) {
+        return result;
       }
-      return result;
-    },
-    {} as Record<string, T>,
-  );
-}
+      result[key] = entry;
+    }
+    return result;
+  }, {});
+};
diff --git a/packages/utils/src/fs.ts b/packages/utils/src/fs.ts
index 3e1269ce..886a7b1a 100644
--- a/packages/utils/src/fs.ts
+++ b/packages/utils/src/fs.ts
@@ -12,53 +12,53 @@ import type { PrettifyCallbackFunction } from "@graphql-markdown/types";
 export { readFile, copyFile } from "node:fs/promises";
 
 /**
- * Asynchronously create a folder structure if it does not exist.
+ * Asynchronously check if a file or folder exists at the path location.
  *
  *
- * @param location - folder structure in path format.
+ * @param location - file or folder location.
  *
  * @example
  * ```js
- * import { ensureDir } from '@graphql-markdown/utils/fs';
+ * import { fileExists } from '@graphql-markdown/utils/fs';
  *
- * await ensureDir("./.temp/local")
+ * await fileExists("./.temp/local")
  *
- * // Creates both folders if they do not exists.
+ * // Expected true if path is valid, false if not
  * ```
  *
+ * @returns `true` if the path is valid, else `false` if not.
+ *
  */
-export async function ensureDir(location: string): Promise<void> {
-  if (!(await fileExists(location))) {
-    await mkdir(location, { recursive: true });
+export const fileExists = async (location: string): Promise<boolean> => {
+  try {
+    const stats = await stat(location);
+    return typeof stats === "object";
+  } catch (error) {
+    return false;
   }
-}
+};
 
 /**
- * Asynchronously check if a file or folder exists at the path location.
+ * Asynchronously create a folder structure if it does not exist.
  *
  *
- * @param location - file or folder location.
+ * @param location - folder structure in path format.
  *
  * @example
  * ```js
- * import { fileExists } from '@graphql-markdown/utils/fs';
+ * import { ensureDir } from '@graphql-markdown/utils/fs';
  *
- * await fileExists("./.temp/local")
+ * await ensureDir("./.temp/local")
  *
- * // Expected true if path is valid, false if not
+ * // Creates both folders if they do not exists.
  * ```
  *
- * @returns `true` if the path is valid, else `false` if not.
- *
  */
-export async function fileExists(location: string): Promise<boolean> {
-  try {
-    const stats = await stat(location);
-    return typeof stats === "object";
-  } catch (error) {
-    return false;
+export const ensureDir = async (location: string): Promise<void> => {
+  if (!(await fileExists(location))) {
+    await mkdir(location, { recursive: true });
   }
-}
+};
 
 /**
  * Asynchronously save a file with a string content at specified location in local FS.
@@ -82,14 +82,14 @@ export async function fileExists(location: string): Promise<boolean> {
  * @returns `true` if the path is valid, else `false` if not.
  *
  */
-export async function saveFile(
+export const saveFile = async (
   location: string,
   content: string,
   prettify?: PrettifyCallbackFunction,
-): Promise<void> {
+): Promise<void> => {
   if (typeof prettify === "function") {
     content = (await prettify(content)) ?? content;
   }
   await ensureDir(dirname(location));
   await writeFile(location, content, "utf8");
-}
+};
diff --git a/packages/utils/src/object.ts b/packages/utils/src/object.ts
index f2559af2..31c2cdc5 100644
--- a/packages/utils/src/object.ts
+++ b/packages/utils/src/object.ts
@@ -31,10 +31,10 @@
  * @returns `false` if the object is a valid k/v set of records, else `true`.
  *
  */
-export function isEmpty(obj: unknown): boolean {
+export const isEmpty = (obj: unknown): boolean => {
   return !(
     typeof obj === "object" &&
     obj !== null &&
     Object.keys(obj).length > 0
   );
-}
+};
diff --git a/packages/utils/src/prettier.ts b/packages/utils/src/prettier.ts
index f06d119f..1e477ab3 100644
--- a/packages/utils/src/prettier.ts
+++ b/packages/utils/src/prettier.ts
@@ -24,10 +24,10 @@ import type { LoggerType } from "@graphql-markdown/types";
  * @returns a prettified string, or undefined if an error occurred.
  *
  */
-export async function prettify(
+export const prettify = async (
   content: string,
   parser: string,
-): Promise<string | undefined> {
+): Promise<string | undefined> => {
   try {
     const { format } = await import("prettier");
     return await format(content, { parser });
@@ -39,7 +39,7 @@ export async function prettify(
     }
     return undefined;
   }
-}
+};
 
 /**
  * Prettify a Markdown string using {@link prettify} and `markdown` parser.
@@ -56,11 +56,11 @@ export async function prettify(
  * @returns a prettified string, or undefined if an error occurred.
  *
  */
-export async function prettifyMarkdown(
+export const prettifyMarkdown = async (
   content: string,
-): Promise<string | undefined> {
+): Promise<string | undefined> => {
   return prettify(content, "markdown");
-}
+};
 
 /**
  * Prettify a Javascript string using {@link prettify} and `babel` parser.
@@ -77,8 +77,8 @@ export async function prettifyMarkdown(
  * @returns a prettified string, or undefined if an error occurred.
  *
  */
-export async function prettifyJavascript(
+export const prettifyJavascript = async (
   content: string,
-): Promise<string | undefined> {
+): Promise<string | undefined> => {
   return prettify(content, "babel");
-}
+};
diff --git a/packages/utils/src/string.ts b/packages/utils/src/string.ts
index 1f25eea7..f660d3a4 100644
--- a/packages/utils/src/string.ts
+++ b/packages/utils/src/string.ts
@@ -7,56 +7,32 @@
 import type { Maybe } from "@graphql-markdown/types";
 
 /**
- * Returns a string after applying a transformation function.
- * By default `splitter` expression will split the string into words, where non-alphanum chars are considered as word separators.
- * `separator` will be used for joining the words back together.
- * {@link prune} using `separator` is applied to the result of the transformation.
+ * Replaces diacritics by non-diacritic equivalent characters.
  *
- * @internal
  *
  * @param str - the string to be transformed.
- * @param transformation - optional transformation callback function.
- * @param separator - optional character separator for word-based transformation.
- * @param splitter - optional regex or string rule for splitting string into word.
  *
- * @returns a transformed string, or an empty string if `str` is not a valid string.
+ * @returns a string with diacritic characters replaced, or an empty string if `str` is not a valid string.
  *
- * @example
+ *  * @example
  * ```js
- * import { stringCaseBuilder } from "@graphql-markdown/utils/string";
- *
- * const text = "The quick brown fox jumps over the lazy dog.";
- * const transformation = (word: string): string => `*${word}*`
+ * import { replaceDiacritics } from "@graphql-markdown/utils/string";
  *
- * stringCaseBuilder(text, transformation, " ");
- * // Expected result: "*The* *quick* *brown* *fox* *jumps* *over* *the* *lazy* *dog*"
+ * replaceDiacritics("Âéêś"); // Expected result: "Aees"
  * ```
  *
+ * @see {@link https://stackoverflow.com/a/37511463 | StackOverflow source}.
+ *
  */
-export function stringCaseBuilder(
-  str: Maybe<string>,
-  transformation?: Maybe<(word: string) => string>,
-  separator?: string,
-  splitter: RegExp | string = /[^0-9A-Za-z]+/g,
-): string {
+export const replaceDiacritics = (str: Maybe<string>): string => {
   if (typeof str !== "string") {
     return "";
   }
-
-  if (typeof transformation !== "function") {
-    return str;
-  }
-
-  const stringCase = replaceDiacritics(str)
-    .replace(/([a-z]+|\d+)([A-Z])/g, "$1 $2")
-    .replace(/([a-z]+)(\d)/g, "$1 $2")
-    .replace(/(\d+)([a-z])/g, "$1 $2")
-    .split(splitter)
-    .filter((word) => word.length > 0)
-    .map((word: string): string => transformation(word))
-    .join(separator);
-  return prune(stringCase, separator);
-}
+  return str
+    .toString()
+    .normalize("NFD")
+    .replace(/[\u0300-\u036f]/g, "");
+};
 
 /**
  * Returns a string pruned on both start and end, similar to `trim()` but with any substring.
@@ -79,7 +55,7 @@ export function stringCaseBuilder(
  * ```
  *
  */
-export function prune(str: Maybe<string>, substr: string = ""): string {
+export const prune = (str: Maybe<string>, substr: string = ""): string => {
   if (typeof str !== "string") {
     return "";
   }
@@ -92,7 +68,63 @@ export function prune(str: Maybe<string>, substr: string = ""): string {
   res = res.startsWith(substr) ? res.slice(substr.length) : res;
   res = res.endsWith(substr) ? res.slice(0, -substr.length) : res;
   return res;
-}
+};
+
+/**
+ * Returns a string after applying a transformation function.
+ * By default `splitter` expression will split the string into words, where non-alphanum chars are considered as word separators.
+ * `separator` will be used for joining the words back together.
+ * {@link prune} using `separator` is applied to the result of the transformation.
+ *
+ * @internal
+ *
+ * @param str - the string to be transformed.
+ * @param transformation - optional transformation callback function.
+ * @param separator - optional character separator for word-based transformation.
+ * @param splitter - optional regex or string rule for splitting string into word.
+ *
+ * @returns a transformed string, or an empty string if `str` is not a valid string.
+ *
+ * @example
+ * ```js
+ * import { stringCaseBuilder } from "@graphql-markdown/utils/string";
+ *
+ * const text = "The quick brown fox jumps over the lazy dog.";
+ * const transformation = (word: string): string => `*${word}*`
+ *
+ * stringCaseBuilder(text, transformation, " ");
+ * // Expected result: "*The* *quick* *brown* *fox* *jumps* *over* *the* *lazy* *dog*"
+ * ```
+ *
+ */
+export const stringCaseBuilder = (
+  str: Maybe<string>,
+  transformation?: Maybe<(word: string) => string>,
+  separator?: string,
+  splitter: RegExp | string = /[^0-9A-Za-z]+/g,
+): string => {
+  if (typeof str !== "string") {
+    return "";
+  }
+
+  if (typeof transformation !== "function") {
+    return str;
+  }
+
+  const stringCase = replaceDiacritics(str)
+    .replace(/([a-z]+|\d+)([A-Z])/g, "$1 $2")
+    .replace(/([a-z]+)(\d)/g, "$1 $2")
+    .replace(/(\d+)([a-z])/g, "$1 $2")
+    .split(splitter)
+    .filter((word) => {
+      return word.length > 0;
+    })
+    .map((word: string): string => {
+      return transformation(word);
+    })
+    .join(separator);
+  return prune(stringCase, separator);
+};
 
 /**
  * Converts a character to its equivalent HTML unicode representation `&#x0000`.
@@ -111,13 +143,13 @@ export function prune(str: Maybe<string>, substr: string = ""): string {
  * ```
  *
  */
-export function toHTMLUnicode(char: Maybe<string>): string {
+export const toHTMLUnicode = (char: Maybe<string>): string => {
   if (typeof char !== "string") {
     return "";
   }
   const unicodeChar = char.charCodeAt(0).toString(16).padStart(4, "0");
   return `&#x${unicodeChar.toUpperCase()};`;
-}
+};
 
 /**
  * Returns a string with MDX special characters converted to HTML unicode using {@link toHTMLUnicode}.
@@ -137,9 +169,9 @@ export function toHTMLUnicode(char: Maybe<string>): string {
  * ```
  *
  */
-export function escapeMDX(str: unknown): string {
+export const escapeMDX = (str: unknown): string => {
   return `${String(str)}`.replace(/[<>{}]/g, toHTMLUnicode);
-}
+};
 
 /**
  * Returns a string with the 1st character in uppercase.
@@ -157,14 +189,14 @@ export function escapeMDX(str: unknown): string {
  * ```
  *
  */
-export function firstUppercase(str: Maybe<string>): string {
+export const firstUppercase = (str: Maybe<string>): string => {
   if (typeof str !== "string") {
     return "";
   }
   const sliceUppercase = str.slice(0, 1).toUpperCase();
   const sliceDefaultCase = str.slice(1);
   return `${sliceUppercase}${sliceDefaultCase}`;
-}
+};
 
 /**
  * Returns a string in lowercase excepted for the 1st character capitalized using {@link firstUppercase}.
@@ -181,40 +213,12 @@ export function firstUppercase(str: Maybe<string>): string {
  * // Expected result: "The quick brown fox"
  * ```
  */
-export function capitalize(str: Maybe<string>): string {
+export const capitalize = (str: Maybe<string>): string => {
   if (typeof str !== "string") {
     return "";
   }
   return firstUppercase(str.toLowerCase());
-}
-
-/**
- * Replaces diacritics by non-diacritic equivalent characters.
- *
- *
- * @param str - the string to be transformed.
- *
- * @returns a string with diacritic characters replaced, or an empty string if `str` is not a valid string.
- *
- *  * @example
- * ```js
- * import { replaceDiacritics } from "@graphql-markdown/utils/string";
- *
- * replaceDiacritics("Âéêś"); // Expected result: "Aees"
- * ```
- *
- * @see {@link https://stackoverflow.com/a/37511463 | StackOverflow source}.
- *
- */
-export function replaceDiacritics(str: Maybe<string>): string {
-  if (typeof str !== "string") {
-    return "";
-  }
-  return str
-    .toString()
-    .normalize("NFD")
-    .replace(/[\u0300-\u036f]/g, "");
-}
+};
 
 /**
  * Applies {@link firstUppercase} using {@link stringCaseBuilder} to every word of a string with `space` character as separator.
@@ -231,12 +235,9 @@ export function replaceDiacritics(str: Maybe<string>): string {
  * // Expected result: "The Quick Brown Fox"
  * ```
  */
-export function startCase(str: Maybe<string>): string {
-  if (typeof str !== "string") {
-    return "";
-  }
+export const startCase = (str: Maybe<string>): string => {
   return stringCaseBuilder(str, firstUppercase, " ");
-}
+};
 
 /**
  * Returns a lowercase string with `-` as replacement for non alphanum characters using {@link stringCaseBuilder}.
@@ -255,12 +256,15 @@ export function startCase(str: Maybe<string>): string {
  * ```
  *
  */
-export function kebabCase(str: Maybe<string>): string {
-  if (typeof str !== "string") {
-    return "";
-  }
-  return stringCaseBuilder(str, (word: string) => word.toLowerCase(), "-");
-}
+export const kebabCase = (str: Maybe<string>): string => {
+  return stringCaseBuilder(
+    str,
+    (word: string) => {
+      return word.toLowerCase();
+    },
+    "-",
+  );
+};
 
 /**
  * Alias of {@link kebabCase}.


Test patch:
diff --git a/packages/core/tests/unit/graphql-config.test.ts b/packages/core/tests/unit/graphql-config.test.ts
index 60177d0d..db86b921 100644
--- a/packages/core/tests/unit/graphql-config.test.ts
+++ b/packages/core/tests/unit/graphql-config.test.ts
@@ -70,6 +70,7 @@ describe("graphql-config", () => {
         .spyOn(GraphQLConfig, "loadConfig")
         .mockResolvedValueOnce({
           getProject: () =>
+            // eslint-disable-next-line @typescript-eslint/no-unsafe-return
             ({
               extension: (): any =>
                 ({
@@ -95,7 +96,7 @@ describe("graphql-config", () => {
         schema: "http://localhost:4000/graphql",
       });
       expect(spy).toHaveBeenCalledWith({
-        extensions: [CoreGraphQLConfig.GraphQLConfigExtension],
+        extensions: [CoreGraphQLConfig.graphQLConfigExtension],
         throwOnMissing: true,
         throwOnEmpty: true,
       });
@@ -129,8 +130,9 @@ describe("graphql-config", () => {
 
       jest.spyOn(GraphQLConfig, "loadConfig").mockResolvedValueOnce({
         getProject: () =>
+          // eslint-disable-next-line @typescript-eslint/no-unsafe-return
           ({
-            extension: () =>
+            extension: (): any =>
               ({
                 documents: undefined,
                 exclude: undefined,
@@ -192,8 +194,9 @@ describe("graphql-config", () => {
 
       jest.spyOn(GraphQLConfig, "loadConfig").mockResolvedValueOnce({
         getProject: () =>
+          // eslint-disable-next-line @typescript-eslint/no-unsafe-return
           ({
-            extension: () =>
+            extension: (): any =>
               ({
                 documents: undefined,
                 exclude: undefined,
@@ -275,8 +278,9 @@ describe("config", () => {
 
       jest.spyOn(GraphQLConfig, "loadConfig").mockResolvedValueOnce({
         getProject: () =>
+          // eslint-disable-next-line @typescript-eslint/no-unsafe-return
           ({
-            extension: () =>
+            extension: (): any =>
               ({
                 documents: undefined,
                 exclude: undefined,
diff --git a/packages/diff/tests/unit/diff.test.ts b/packages/diff/tests/unit/diff.test.ts
index 8ef0469b..4dc182b8 100644
--- a/packages/diff/tests/unit/diff.test.ts
+++ b/packages/diff/tests/unit/diff.test.ts
@@ -15,7 +15,7 @@ import type { Change } from "@graphql-inspector/core/typings/diff/changes/change
 
 import {
   checkSchemaChanges,
-  COMPARE_METHOD,
+  CompareMethod,
   SCHEMA_HASH_FILE,
   SCHEMA_REF,
 } from "../../src/index";
@@ -51,7 +51,7 @@ describe("lib", () => {
         expect(check).toBeTruthy();
       });
 
-      test("returns true if COMPARE_METHOD.HASH comparison differs", async () => {
+      test("returns true if CompareMethod.HASH comparison differs", async () => {
         expect.assertions(1);
 
         const printSchema = jest.spyOn(graphql, "printSchema");
@@ -65,13 +65,13 @@ describe("lib", () => {
         const check = await checkSchemaChanges(
           new graphql.GraphQLSchema({}),
           "/output",
-          COMPARE_METHOD.HASH as DiffMethodName,
+          CompareMethod.HASH as DiffMethodName,
         );
 
         expect(check).toBeTruthy();
       });
 
-      test("returns false if COMPARE_METHOD.HASH comparison is equals", async () => {
+      test("returns false if CompareMethod.HASH comparison is equals", async () => {
         expect.assertions(1);
 
         jest.spyOn(graphql, "printSchema").mockImplementation(() => "schema");
@@ -84,13 +84,13 @@ describe("lib", () => {
         const check = await checkSchemaChanges(
           new graphql.GraphQLSchema({}),
           "/output",
-          COMPARE_METHOD.HASH as DiffMethodName,
+          CompareMethod.HASH as DiffMethodName,
         );
 
         expect(check).toBeFalsy();
       });
 
-      test("returns true if COMPARE_METHOD.HASH comparison has no reference hash file", async () => {
+      test("returns true if CompareMethod.HASH comparison has no reference hash file", async () => {
         expect.assertions(1);
 
         jest.spyOn(graphql, "printSchema").mockImplementation(() => "schema");
@@ -102,13 +102,13 @@ describe("lib", () => {
         const check = await checkSchemaChanges(
           new graphql.GraphQLSchema({}),
           "/output",
-          COMPARE_METHOD.HASH as DiffMethodName,
+          CompareMethod.HASH as DiffMethodName,
         );
 
         expect(check).toBeTruthy();
       });
 
-      test("returns true if COMPARE_METHOD.DIFF comparison differs", async () => {
+      test("returns true if CompareMethod.DIFF comparison differs", async () => {
         expect.assertions(1);
 
         jest
@@ -137,13 +137,13 @@ describe("lib", () => {
         const check = await checkSchemaChanges(
           new graphql.GraphQLSchema({}),
           "/output",
-          COMPARE_METHOD.DIFF as DiffMethodName,
+          CompareMethod.DIFF as DiffMethodName,
         );
 
         expect(check).toBeTruthy();
       });
 
-      test("returns false if COMPARE_METHOD.DIFF comparison is equals", async () => {
+      test("returns false if CompareMethod.DIFF comparison is equals", async () => {
         expect.assertions(1);
 
         jest
@@ -165,13 +165,13 @@ describe("lib", () => {
         const check = await checkSchemaChanges(
           new graphql.GraphQLSchema({}),
           "/output",
-          COMPARE_METHOD.DIFF as DiffMethodName,
+          CompareMethod.DIFF as DiffMethodName,
         );
 
         expect(check).toBeFalsy();
       });
 
-      test("returns true if COMPARE_METHOD.DIFF no schema introspection file exists", async () => {
+      test("returns true if CompareMethod.DIFF no schema introspection file exists", async () => {
         expect.assertions(1);
 
         jest
@@ -189,7 +189,7 @@ describe("lib", () => {
         const check = await checkSchemaChanges(
           new graphql.GraphQLSchema({}),
           "/output",
-          COMPARE_METHOD.DIFF as DiffMethodName,
+          CompareMethod.DIFF as DiffMethodName,
         );
 
         expect(check).toBeTruthy();
diff --git a/packages/graphql/tests/unit/group.test.ts b/packages/graphql/tests/unit/group.test.ts
index ae18efd8..65583f36 100644
--- a/packages/graphql/tests/unit/group.test.ts
+++ b/packages/graphql/tests/unit/group.test.ts
@@ -72,30 +72,20 @@ describe("group-info", () => {
     test("returns group for each types in schema", () => {
       expect.assertions(1);
 
-      expect(getGroups(schemaMap, groupOptions)).toMatchInlineSnapshot(`
-        {
-          "objects": {
-            "Bird": "animal",
-            "Boolean": "common",
-            "Elf": "common",
-            "Fish": "common",
-            "Query": "common",
-            "String": "common",
-            "Unicorn": "common",
-            "__Directive": "common",
-            "__DirectiveLocation": "common",
-            "__EnumValue": "common",
-            "__Field": "common",
-            "__InputValue": "common",
-            "__Schema": "common",
-            "__Type": "common",
-            "__TypeKind": "common",
-          },
-          "queries": {
-            "Fish": "animal",
-          },
-        }
-      `);
+      expect(getGroups(schemaMap, groupOptions)).toEqual({
+        objects: expect.objectContaining({
+          Bird: "animal",
+          Boolean: "common",
+          Elf: "common",
+          Fish: "common",
+          Query: "common",
+          String: "common",
+          Unicorn: "common",
+        }),
+        queries: {
+          Fish: "animal",
+        },
+      });
     });
   });
 
diff --git a/packages/printer-legacy/tests/unit/badge.test.ts b/packages/printer-legacy/tests/unit/badge.test.ts
index b5cae6df..978297da 100644
--- a/packages/printer-legacy/tests/unit/badge.test.ts
+++ b/packages/printer-legacy/tests/unit/badge.test.ts
@@ -3,7 +3,7 @@ import type { PrintTypeOptions } from "@graphql-markdown/types";
 jest.mock("@graphql-markdown/utils", () => {
   return {
     slugify: jest.fn(),
-    escapeMDX: jest.fn((t) => t),
+    escapeMDX: jest.fn(<T>(t: T): T => t),
     pathUrl: jest.fn(),
     isEmpty: jest.fn(() => false),
   };
@@ -65,8 +65,8 @@ describe("badge", () => {
         { ...DEFAULT_OPTIONS, typeBadges: true },
       );
 
-      expect(badges).toMatchInlineSnapshot(
-        `"<Badge class="badge badge--secondary" text="non-null"/>"`,
+      expect(badges).toBe(
+        '<Badge class="badge badge--secondary" text="non-null"/>',
       );
     });
 
diff --git a/packages/printer-legacy/tests/unit/graphql/union.test.ts b/packages/printer-legacy/tests/unit/graphql/union.test.ts
index 5d2d7bcf..e62ee479 100644
--- a/packages/printer-legacy/tests/unit/graphql/union.test.ts
+++ b/packages/printer-legacy/tests/unit/graphql/union.test.ts
@@ -23,23 +23,21 @@ describe("union", () => {
 
       const code = printUnionMetadata(type, DEFAULT_OPTIONS);
 
-      expect(code).toMatchInlineSnapshot(`
-        "### Possible types
-
-        #### [<code style={{ fontWeight: 'normal' }}>UnionTypeName.<b>one</b></code>](/objects/one) <Badge class="badge badge--secondary" text="object"/> 
-        > 
-        > 
-        > 
-        > 
-
-        #### [<code style={{ fontWeight: 'normal' }}>UnionTypeName.<b>two</b></code>](/objects/two) <Badge class="badge badge--secondary" text="object"/> 
-        > 
-        > 
-        > 
-        > 
-
-        "
-      `);
+      expect(code).toBe(`### Possible types
+
+#### [<code style={{ fontWeight: 'normal' }}>UnionTypeName.<b>one</b></code>](/objects/one) <Badge class="badge badge--secondary" text="object"/> 
+> 
+> 
+> 
+> 
+
+#### [<code style={{ fontWeight: 'normal' }}>UnionTypeName.<b>two</b></code>](/objects/two) <Badge class="badge badge--secondary" text="object"/> 
+> 
+> 
+> 
+> 
+
+`);
     });
   });
 
@@ -49,7 +47,7 @@ describe("union", () => {
 
       const code = printCodeUnion(type);
 
-      expect(code).toMatchInlineSnapshot(`"union UnionTypeName = one | two"`);
+      expect(code).toBe("union UnionTypeName = one | two");
     });
 
     test("returns empty string if not union type", () => {
diff --git a/packages/utils/tests/unit/string.test.ts b/packages/utils/tests/unit/string.test.ts
index c7fa4c8e..f10de22a 100644
--- a/packages/utils/tests/unit/string.test.ts
+++ b/packages/utils/tests/unit/string.test.ts
@@ -171,12 +171,6 @@ describe("string", () => {
   });
 
   describe("startCase()", () => {
-    test("returns empty string if not a string", () => {
-      expect.hasAssertions();
-
-      expect(startCase(null)).toBe("");
-    });
-
     test("returns startCase version", () => {
       expect.hasAssertions();
 
@@ -185,12 +179,6 @@ describe("string", () => {
   });
 
   describe("kebabCase()", () => {
-    test("returns empty string if not a string", () => {
-      expect.hasAssertions();
-
-      expect(kebabCase(null)).toBe("");
-    });
-
     test("returns a kebabCase version", () => {
       expect.hasAssertions();