Move from a compile-all to a compile-entry-point pattern#463
Move from a compile-all to a compile-entry-point pattern#463ericmorand-sonarsource merged 1 commit intoSonarSource:masterfrom ericmorand-sonarsource:compilation-entry-point
Conversation
| ], | ||
| "scripts": { | ||
| "build": "rimraf lib && tsc -d -p tsconfig.json", | ||
| "build": "rimraf lib && tsc -d -p src", |
There was a problem hiding this comment.
Since I added a tsconfig.json file under src, I target the src project here. Later on, would we want to build the test suite, we can add a tsconfig.json under tests and target the tests project to build the test suite. This way, entry point can be different between the main and the tests projects.
| }; | ||
|
|
||
| const recommendedLegacyConfig: TSESLint.Linter.Config = { plugins: ['sonarjs'], rules: {} }; | ||
| const recommendedLegacyConfig: TSESLint.Linter.ConfigType = { plugins: ['sonarjs'], rules: {} }; |
There was a problem hiding this comment.
TSESLint.Linter.Configbeing deprecated, I replaced it with the legit type.
| expect(README.includes(rule)).toBe(true); | ||
| expect(fs.existsSync(`${root}/docs/rules/${rule}.md`)).toBe(true); | ||
| expect(rules[rule].meta.docs.url).toBe( | ||
| expect(rules[rule].meta.docs!.url).toBe( |
There was a problem hiding this comment.
Now that the exported rules is typed, I had to honor the fact that docs can be undefined.
| "outDir": "lib", | ||
| "sourceMap": true, | ||
| "moduleResolution": "nodenext" | ||
| }, |
There was a problem hiding this comment.
There is no need to declare the included files since we now rely on an entry point declared on each project (aka tsconfig.json).
| }); | ||
| for (const key in rules) { | ||
| const rule = rules[key]; | ||
| const recommended = rule.meta.docs?.recommended; |
There was a problem hiding this comment.
I think that, in this case, not destructuring is more readable than destructuring. Feel free to request a change if you think the destructured syntax of the original code is clearer:
const {
meta: {
docs: { recommended },
},
} = rule;
|
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-plugin-sonarjs](https://togithub.com/SonarSource/eslint-plugin-sonarjs) | [`0.25.1` -> `1.0.3`](https://renovatebot.com/diffs/npm/eslint-plugin-sonarjs/0.25.1/1.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>SonarSource/eslint-plugin-sonarjs (eslint-plugin-sonarjs)</summary> ### [`v1.0.3`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/v1.0.2...004d7944672f249000e1eb1c97acd13e31e455eb) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/v1.0.2...1.0.3) ### [`v1.0.2`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/v1.0.2) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/1.0.0...v1.0.2) #### What's Changed - Export "meta" for plugin by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/472](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/472) ### [`v1.0.0`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.0) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/0.25.1...1.0.0) Eslint-plugin-sonarjs is compatible with ESLint v9. ##### What's Changed - Migrate to all newest packages, except for eslint v9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/460](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/460) - Move from a compile-all to a compile-entry-point pattern by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/463](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/463) - ESLINTJS-36 Split out tests and analyze into separate steps by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/465](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/465) - Fix breaking no-one-iteration-loop after ESLint v9 breaking change by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/467](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/467) - Resolve ESLINTJS-37 by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/466](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/466) - Add ruling tests to handle eslint 8 and 9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/468](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/468) - Make the exported rules a typed record by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/469](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/469) **Full Changelog**: SonarSource/eslint-plugin-sonarjs@0.25.1...1.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekday" in timezone Etc/UTC, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ScaleLeap/amazon-marketplaces). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNDAuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsicmVub3ZhdGVib3QiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-plugin-sonarjs](https://togithub.com/SonarSource/eslint-plugin-sonarjs) | [`^0.25.1` -> `^1.0.3`](https://renovatebot.com/diffs/npm/eslint-plugin-sonarjs/0.25.1/1.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>SonarSource/eslint-plugin-sonarjs (eslint-plugin-sonarjs)</summary> ### [`v1.0.3`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.3) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/v1.0.2...1.0.3) #### What's Changed - [ESLINTJS-41](https://sonarsource.atlassian.net/browse/ESLINTJS-41) The package entry points are incorrectly set by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/473](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/473) ### [`v1.0.2`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/v1.0.2) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/1.0.0...v1.0.2) #### What's Changed - [ESLINTJS-40](https://sonarsource.atlassian.net/browse/ESLINTJS-40) Expose the plugin "meta" as expected by ESLint 9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/472](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/472) ### [`v1.0.0`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.0) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/0.25.1...1.0.0) Eslint-plugin-sonarjs is compatible with ESLint v9. ##### What's Changed - Migrate to all newest packages, except for eslint v9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/460](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/460) - Move from a compile-all to a compile-entry-point pattern by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/463](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/463) - ESLINTJS-36 Split out tests and analyze into separate steps by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/465](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/465) - Fix breaking no-one-iteration-loop after ESLint v9 breaking change by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/467](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/467) - Resolve ESLINTJS-37 by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/466](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/466) - Add ruling tests to handle eslint 8 and 9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/468](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/468) - Make the exported rules a typed record by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/469](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/469) **Full Changelog**: SonarSource/eslint-plugin-sonarjs@0.25.1...1.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 8pm on the first day of the month" in timezone America/Chicago, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/compiler-explorer/compiler-explorer). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-plugin-sonarjs](https://togithub.com/SonarSource/eslint-plugin-sonarjs) | [`^0.25.1` -> `^1.0.3`](https://renovatebot.com/diffs/npm/eslint-plugin-sonarjs/0.25.1/1.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>SonarSource/eslint-plugin-sonarjs (eslint-plugin-sonarjs)</summary> ### [`v1.0.3`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.3) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/v1.0.2...1.0.3) #### What's Changed - [ESLINTJS-41](https://sonarsource.atlassian.net/browse/ESLINTJS-41) The package entry points are incorrectly set by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/473](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/473) ### [`v1.0.2`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/v1.0.2) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/1.0.0...v1.0.2) #### What's Changed - [ESLINTJS-40](https://sonarsource.atlassian.net/browse/ESLINTJS-40) Expose the plugin "meta" as expected by ESLint 9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/472](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/472) ### [`v1.0.0`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.0) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/0.25.1...1.0.0) Eslint-plugin-sonarjs is compatible with ESLint v9. ##### What's Changed - Migrate to all newest packages, except for eslint v9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/460](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/460) - Move from a compile-all to a compile-entry-point pattern by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/463](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/463) - ESLINTJS-36 Split out tests and analyze into separate steps by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/465](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/465) - Fix breaking no-one-iteration-loop after ESLint v9 breaking change by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/467](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/467) - Resolve ESLINTJS-37 by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/466](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/466) - Add ruling tests to handle eslint 8 and 9 by [@​zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/468](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/468) - Make the exported rules a typed record by [@​ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/469](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/469) **Full Changelog**: SonarSource/eslint-plugin-sonarjs@0.25.1...1.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 8pm on the first day of the month" in timezone America/Chicago, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/compiler-explorer/compiler-explorer). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…explorer#6578) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-plugin-sonarjs](https://togithub.com/SonarSource/eslint-plugin-sonarjs) | [`^0.25.1` -> `^1.0.3`](https://renovatebot.com/diffs/npm/eslint-plugin-sonarjs/0.25.1/1.0.3) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>SonarSource/eslint-plugin-sonarjs (eslint-plugin-sonarjs)</summary> ### [`v1.0.3`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.3) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/v1.0.2...1.0.3) #### What's Changed - [ESLINTJS-41](https://sonarsource.atlassian.net/browse/ESLINTJS-41) The package entry points are incorrectly set by [@&compiler-explorer#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/473](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/473) ### [`v1.0.2`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/v1.0.2) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/1.0.0...v1.0.2) #### What's Changed - [ESLINTJS-40](https://sonarsource.atlassian.net/browse/ESLINTJS-40) Expose the plugin "meta" as expected by ESLint 9 by [@&compiler-explorer#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/472](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/472) ### [`v1.0.0`](https://togithub.com/SonarSource/eslint-plugin-sonarjs/releases/tag/1.0.0) [Compare Source](https://togithub.com/SonarSource/eslint-plugin-sonarjs/compare/0.25.1...1.0.0) Eslint-plugin-sonarjs is compatible with ESLint v9. ##### What's Changed - Migrate to all newest packages, except for eslint v9 by [@&compiler-explorer#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/460](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/460) - Move from a compile-all to a compile-entry-point pattern by [@&compiler-explorer#8203;ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/463](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/463) - ESLINTJS-36 Split out tests and analyze into separate steps by [@&compiler-explorer#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/465](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/465) - Fix breaking no-one-iteration-loop after ESLint v9 breaking change by [@&compiler-explorer#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/467](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/467) - Resolve ESLINTJS-37 by [@&compiler-explorer#8203;ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/466](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/466) - Add ruling tests to handle eslint 8 and 9 by [@&compiler-explorer#8203;zglicz](https://togithub.com/zglicz) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/468](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/468) - Make the exported rules a typed record by [@&compiler-explorer#8203;ericmorand-sonarsource](https://togithub.com/ericmorand-sonarsource) in [https://github.com/SonarSource/eslint-plugin-sonarjs/pull/469](https://togithub.com/SonarSource/eslint-plugin-sonarjs/pull/469) **Full Changelog**: SonarSource/eslint-plugin-sonarjs@0.25.1...1.0.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 8pm on the first day of the month" in timezone America/Chicago, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/compiler-explorer/compiler-explorer). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>




Fixes ESLINTJS-43