diff --git a/packages/website/plugins/generated-rule-docs.ts b/packages/website/plugins/generated-rule-docs.ts index 7823f2d84486..816df1635a4f 100644 --- a/packages/website/plugins/generated-rule-docs.ts +++ b/packages/website/plugins/generated-rule-docs.ts @@ -52,9 +52,8 @@ export const generatedRuleDocs: Plugin = () => { return; } - const rule = pluginRules[file.stem]; - const meta = rule?.meta; - if (!meta?.docs) { + const rule = file.stem in pluginRules ? pluginRules[file.stem] : undefined; + if (!rule?.meta.docs) { return; } @@ -72,7 +71,7 @@ export const generatedRuleDocs: Plugin = () => { { children: [ { - children: meta.docs.description + children: rule.meta.docs.description .split(/`(.+?)`/) .map((value, index, array) => ({ type: index % 2 === 0 ? 'text' : 'inlineCode', @@ -90,7 +89,7 @@ export const generatedRuleDocs: Plugin = () => { ); // 3. Add a notice about formatting rules being 🤢 - if (meta.type === 'layout') { + if (rule.meta.type === 'layout') { const warningNode = { value: ` @@ -150,7 +149,7 @@ export const generatedRuleDocs: Plugin = () => { } insertIfMissing('Options'); - if (meta.docs.extendsBaseRule) { + if (rule.meta.docs.extendsBaseRule) { insertIfMissing('How to Use'); } return [headingIndices[0], headingIndices[1]]; @@ -158,10 +157,10 @@ export const generatedRuleDocs: Plugin = () => { let eslintrc: string; - if (meta.docs.extendsBaseRule) { + if (rule.meta.docs.extendsBaseRule) { const extendsBaseRuleName = - typeof meta.docs.extendsBaseRule === 'string' - ? meta.docs.extendsBaseRule + typeof rule.meta.docs.extendsBaseRule === 'string' + ? rule.meta.docs.extendsBaseRule : file.stem; children.splice(optionsH2Index + 1, 0, { @@ -257,9 +256,9 @@ export const generatedRuleDocs: Plugin = () => { optionsH2Index += 2; - const hasNoConfig = Array.isArray(meta.schema) - ? meta.schema.length === 0 - : Object.keys(meta.schema).length === 0; + const hasNoConfig = Array.isArray(rule.meta.schema) + ? rule.meta.schema.length === 0 + : Object.keys(rule.meta.schema).length === 0; if (hasNoConfig) { children.splice(optionsH2Index + 1, 0, { children: [ @@ -390,7 +389,7 @@ export const generatedRuleDocs: Plugin = () => { ); // 6. Also add a notice about coming from ESLint core for extension rules - if (meta.docs.extendsBaseRule) { + if (rule.meta.docs.extendsBaseRule) { children.push({ children: [ { @@ -405,9 +404,9 @@ export const generatedRuleDocs: Plugin = () => { type: 'link', title: null, url: `https://github.com/eslint/eslint/blob/main/docs/src/rules/${ - meta.docs.extendsBaseRule === true + rule.meta.docs.extendsBaseRule === true ? file.stem - : meta.docs.extendsBaseRule + : rule.meta.docs.extendsBaseRule }.md`, children: [ { diff --git a/packages/website/src/components/ErrorsViewer.tsx b/packages/website/src/components/ErrorsViewer.tsx index 1ea30d5f623f..9e1a57d7cb0d 100644 --- a/packages/website/src/components/ErrorsViewer.tsx +++ b/packages/website/src/components/ErrorsViewer.tsx @@ -115,7 +115,7 @@ export function ErrorViewer({

{title}

-            {type === 'danger' ? value?.stack : value.message}
+            {type === 'danger' ? value.stack : value.message}
           
diff --git a/packages/website/src/components/OptionsSelector.tsx b/packages/website/src/components/OptionsSelector.tsx index 00870a850c35..b881319e58ab 100644 --- a/packages/website/src/components/OptionsSelector.tsx +++ b/packages/website/src/components/OptionsSelector.tsx @@ -57,7 +57,7 @@ function OptionsSelectorContent({ value={state.ts} disabled={!tsVersions.length} onChange={(ts): void => setState({ ts })} - options={(tsVersions.length && tsVersions) || [state.ts]} + options={tsVersions.length ? tsVersions : [state.ts]} /> {process.env.ESLINT_VERSION} diff --git a/packages/website/src/components/ast/DataRenderer.tsx b/packages/website/src/components/ast/DataRenderer.tsx index 8562b1f4ae38..75a8e010dcc0 100644 --- a/packages/website/src/components/ast/DataRenderer.tsx +++ b/packages/website/src/components/ast/DataRenderer.tsx @@ -115,7 +115,7 @@ function RenderExpandableObject({
{data.map((dataElement, index) => ( (Number(f) & value) !== 0) - .map(([, name]) => `${type}.${name}`) - .join('\n'); - } - return ''; + return Object.entries(getTsEnum(type)) + .filter(([f]) => (Number(f) & value) !== 0) + .map(([, name]) => `${type}.${name}`) + .join('\n'); } diff --git a/packages/website/src/components/config/ConfigEditor.tsx b/packages/website/src/components/config/ConfigEditor.tsx index f34b7662413e..a326a5be2077 100644 --- a/packages/website/src/components/config/ConfigEditor.tsx +++ b/packages/website/src/components/config/ConfigEditor.tsx @@ -62,7 +62,7 @@ function ConfigEditorField({ {item.label &&
} {item.label && {item.label}} - {(item.type === 'boolean' && ( + {item.type === 'boolean' ? ( - )) || - (item.type === 'string' && item.enum && ( + ) : ( + item.enum && ( onChange(item.key, value)} /> - ))} + ) + )} ); } diff --git a/packages/website/src/components/editor/LoadedEditor.tsx b/packages/website/src/components/editor/LoadedEditor.tsx index 58ff7d3cd305..f5bc9d244bf1 100644 --- a/packages/website/src/components/editor/LoadedEditor.tsx +++ b/packages/website/src/components/editor/LoadedEditor.tsx @@ -267,7 +267,7 @@ export const LoadedEditor: React.FC = ({ return debounce(() => editor.layout(), 1); }, [editor]); - const container = editor.getContainerDomNode?.() ?? editor.getDomNode(); + const container = editor.getContainerDomNode(); useResizeObserver(container, () => { resize(); diff --git a/packages/website/src/components/lib/jsonSchema.ts b/packages/website/src/components/lib/jsonSchema.ts index 6ea3d4bbc2a5..e5c5801583dd 100644 --- a/packages/website/src/components/lib/jsonSchema.ts +++ b/packages/website/src/components/lib/jsonSchema.ts @@ -50,7 +50,7 @@ export function getRuleJsonSchemaWithErrorLevel( }; } // example: naming-convention rule - if (typeof ruleSchema.items === 'object' && ruleSchema.items) { + if (typeof ruleSchema.items === 'object') { return { ...ruleSchema, type: 'array', diff --git a/packages/website/src/components/lib/markdown.ts b/packages/website/src/components/lib/markdown.ts index 682378c5a5a6..7e9faaccc02b 100644 --- a/packages/website/src/components/lib/markdown.ts +++ b/packages/website/src/components/lib/markdown.ts @@ -66,8 +66,8 @@ export function createMarkdownParams(state: ConfigModel): string { title: `Bug: [${onlyRuleName}] `, 'playground-link': document.location.toString(), 'repro-code': state.code, - 'eslint-config': `module.exports = ${state.eslintrc ?? '{}'}`, - 'typescript-config': state.tsconfig ?? '{}', + 'eslint-config': `module.exports = ${state.eslintrc}`, + 'typescript-config': state.tsconfig, versions: generateVersionsTable(state.ts), }; diff --git a/packages/website/src/components/typeDetails/TypeInfo.tsx b/packages/website/src/components/typeDetails/TypeInfo.tsx index 87084650d124..aabac949da07 100644 --- a/packages/website/src/components/typeDetails/TypeInfo.tsx +++ b/packages/website/src/components/typeDetails/TypeInfo.tsx @@ -67,7 +67,7 @@ export function TypeInfo({ onHoverNode, }: TypeInfoProps): React.JSX.Element { const computed = useMemo(() => { - if (!typeChecker || !value) { + if (!typeChecker) { return undefined; } const info: InfoModel = {}; diff --git a/packages/website/src/theme/CodeBlock/Content/String.tsx b/packages/website/src/theme/CodeBlock/Content/String.tsx index e6db6b72a311..6895cab853e2 100644 --- a/packages/website/src/theme/CodeBlock/Content/String.tsx +++ b/packages/website/src/theme/CodeBlock/Content/String.tsx @@ -52,7 +52,12 @@ export default function CodeBlockString({ const copiedCode = code .split('\n') - .filter((c, i) => !lineClassNames[i]?.includes('code-block-removed-line')) + .filter( + (c, i) => + !(lineClassNames[i] as string[] | undefined)?.includes( + 'code-block-removed-line', + ), + ) .join('\n'); const eslintrcHash = parseEslintrc(metastring);