diff --git a/CHANGELOG.md b/CHANGELOG.md index df244da17..322403e8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Changelog All notable changes to this project will be documented in this file. Dates are displayed in UTC. +## [6.3.2](https://github.com/eslint-functional/eslint-plugin-functional/compare/v6.3.1...v6.3.2) (2024-04-01) + + +### Bug Fixes + +* **readonly-type:** empty object types should not trigger reports ([fc6a394](https://github.com/eslint-functional/eslint-plugin-functional/commit/fc6a394ab9d6ab800fc5ae0559fba5858b0936d8)), closes [#796](https://github.com/eslint-functional/eslint-plugin-functional/issues/796) + ## [6.3.1](https://github.com/eslint-functional/eslint-plugin-functional/compare/v6.3.0...v6.3.1) (2024-04-01) diff --git a/src/rules/readonly-type.ts b/src/rules/readonly-type.ts index 5f98ff212..426778886 100644 --- a/src/rules/readonly-type.ts +++ b/src/rules/readonly-type.ts @@ -178,14 +178,16 @@ function checkTypeLiteral( } if (mode === "generic") { - const needsWrapping = node.members.every( - (member) => - (isPropertyDefinition(member) || - isTSIndexSignature(member) || - isTSParameterProperty(member) || - isTSPropertySignature(member)) && - member.readonly, - ); + const needsWrapping = + node.members.length > 0 && + node.members.every( + (member) => + (isPropertyDefinition(member) || + isTSIndexSignature(member) || + isTSParameterProperty(member) || + isTSPropertySignature(member)) && + member.readonly, + ); if (needsWrapping) { return { diff --git a/tests/rules/readonly-type/ts/valid.ts b/tests/rules/readonly-type/ts/valid.ts index acd28f581..f0e0c85d4 100644 --- a/tests/rules/readonly-type/ts/valid.ts +++ b/tests/rules/readonly-type/ts/valid.ts @@ -73,6 +73,13 @@ const tests: Array>> = [ `, optionsSet: [["keyword"]], }, + // Empty should not cause issues + { + code: dedent` + type Foo = {}; + `, + optionsSet: [["keyword"], ["generic"]], + }, ]; export default tests;