From b0b0d5a76e7f71496f8a8830ee27d9ab76151b36 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 May 2022 21:08:04 -0500 Subject: [PATCH] eslint: enforce jsdoc comments on UI components --- .eslintrc.js | 19 ++++++++ .../components/ui/button/useButtonStyles.ts | 1 + .../ui/progress-bar/progress-bar.tsx | 1 + package.json | 1 + yarn.lock | 43 ++++++++++++++++++- 5 files changed, 63 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 2a2c14f68..bfe92311d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -21,6 +21,7 @@ module.exports = { plugins: [ 'react', + 'jsdoc', 'jsx-a11y', 'import', 'promise', @@ -270,5 +271,23 @@ module.exports = { }, parser: '@typescript-eslint/parser', }, + { + // Only enforce JSDoc comments on UI components for now. + // https://www.npmjs.com/package/eslint-plugin-jsdoc + files: ['app/soapbox/components/ui/**/*'], + rules: { + 'jsdoc/require-jsdoc': ['error', { + publicOnly: true, + require: { + ArrowFunctionExpression: true, + ClassDeclaration: true, + ClassExpression: true, + FunctionDeclaration: true, + FunctionExpression: true, + MethodDefinition: true, + }, + }], + }, + }, ], }; diff --git a/app/soapbox/components/ui/button/useButtonStyles.ts b/app/soapbox/components/ui/button/useButtonStyles.ts index b6ba9fb71..1b52e9a05 100644 --- a/app/soapbox/components/ui/button/useButtonStyles.ts +++ b/app/soapbox/components/ui/button/useButtonStyles.ts @@ -10,6 +10,7 @@ type IButtonStyles = { size: ButtonSizes } +/** Provides class names for the