From 4acc84898bde2101853ad35179644a434e929e7a Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Tue, 24 Oct 2023 02:46:54 -0400 Subject: [PATCH] chore: enable no-dynamic-delete internally --- .eslintrc.js | 1 - packages/rule-tester/src/RuleTester.ts | 1 + packages/typescript-estree/tools/test-utils.ts | 2 ++ packages/website/src/components/config/ConfigEditor.tsx | 2 ++ 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index ac2e363f4e13..3f9883dc544b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -55,7 +55,6 @@ module.exports = { // TODO(#7338): Investigate enabling these soon ✨ '@typescript-eslint/consistent-indexed-object-style': 'off', '@typescript-eslint/no-unnecessary-condition': 'off', - '@typescript-eslint/no-dynamic-delete': 'off', '@typescript-eslint/prefer-nullish-coalescing': 'off', // TODO(#7130): Investigate changing these in or removing these from presets diff --git a/packages/rule-tester/src/RuleTester.ts b/packages/rule-tester/src/RuleTester.ts index 85bd223d8609..a0f775a7d663 100644 --- a/packages/rule-tester/src/RuleTester.ts +++ b/packages/rule-tester/src/RuleTester.ts @@ -466,6 +466,7 @@ export class RuleTester extends TestFramework { const itemConfig: Record = { ...item }; for (const parameter of RULE_TESTER_PARAMETERS) { + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete itemConfig[parameter]; } diff --git a/packages/typescript-estree/tools/test-utils.ts b/packages/typescript-estree/tools/test-utils.ts index 81121274b254..2042996bf9fe 100644 --- a/packages/typescript-estree/tools/test-utils.ts +++ b/packages/typescript-estree/tools/test-utils.ts @@ -127,6 +127,8 @@ export function omitDeep( for (const prop in node) { if (Object.prototype.hasOwnProperty.call(node, prop)) { if (shouldOmit(prop, node[prop]) || node[prop] === undefined) { + // Filter out omitted and undefined props from the node + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete node[prop]; continue; } diff --git a/packages/website/src/components/config/ConfigEditor.tsx b/packages/website/src/components/config/ConfigEditor.tsx index f34b7662413e..b667e7697c98 100644 --- a/packages/website/src/components/config/ConfigEditor.tsx +++ b/packages/website/src/components/config/ConfigEditor.tsx @@ -101,6 +101,8 @@ function ConfigEditor({ (name: string, value: unknown): void => { const newConfig = { ...values }; if (value === '' || value == null) { + // Filter out falsy values from the new config + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete newConfig[name]; } else { newConfig[name] = value;