diff --git a/src/fireedge/.eslintrc b/src/fireedge/.eslintrc index 278c1ecf0f..05266d4a5e 100644 --- a/src/fireedge/.eslintrc +++ b/src/fireedge/.eslintrc @@ -6,38 +6,61 @@ }, "extends": [ "plugin:react/recommended", + "plugin:jsdoc/recommended", "standard" ], "parserOptions": { "ecmaFeatures": { - "jsx": true + "jsx": true }, "ecmaVersion": 12, "sourceType": "module" }, - "plugins": ["jsdoc","react"], + "plugins": ["jsdoc", "react", "header"], "rules": { - "import/no-extraneous-dependencies": [ - "error", - { - "devDependencies": [ - "*.js" - ] - } - ], + "import/no-extraneous-dependencies": ["error", { + "devDependencies": ["*.js"] + }], "default-case": 0, - "require-jsdoc": ["error", { + "jsdoc/require-jsdoc": ["error", { + "publicOnly": true, "require": { - "FunctionDeclaration": true, - "MethodDefinition": true, - "ClassDeclaration": true, - "ArrowFunctionExpression": true, - "FunctionExpression": true + "ArrowFunctionExpression": true, + "FunctionDeclaration": true, + "FunctionExpression": true, + "ClassDeclaration": true, + "ClassExpression": true, + "MethodDefinition": true } - }] + }], + "jsdoc/check-indentation": 1, + "jsdoc/check-line-alignment": 1, + "jsdoc/check-syntax": 1, + "jsdoc/match-description": 1, + "jsdoc/require-asterisk-prefix": 1, + "jsdoc/require-hyphen-before-param-description": 1, + + "header/header": [2, "block", [ + " ------------------------------------------------------------------------- *", + " * Copyright 2002-2021, OpenNebula Project, OpenNebula Systems *", + " * *", + " * Licensed under the Apache License, Version 2.0 (the \"License\"); you may *", + " * not use this file except in compliance with the License. You may obtain *", + " * a copy of the License at *", + " * *", + " * http://www.apache.org/licenses/LICENSE-2.0 *", + " * *", + " * Unless required by applicable law or agreed to in writing, software *", + " * distributed under the License is distributed on an \"AS IS\" BASIS, *", + " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *", + " * See the License for the specific language governing permissions and *", + " * limitations under the License. *", + " * ------------------------------------------------------------------------- " + ] + ] }, "settings": { - "react" : { + "react": { "version": "detect" }, "import/resolver": { diff --git a/src/fireedge/package-lock.json b/src/fireedge/package-lock.json index 5ba04364d6..82f15259bb 100644 --- a/src/fireedge/package-lock.json +++ b/src/fireedge/package-lock.json @@ -105,6 +105,7 @@ "eslint-import-resolver-alias": "1.1.2", "eslint-import-resolver-webpack": "0.13.0", "eslint-plugin-babel": "5.3.1", + "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "2.22.1", "eslint-plugin-jsdoc": "35.4.1", "eslint-plugin-node": "11.1.0", @@ -4703,6 +4704,15 @@ "eslint": ">=4.19.1" } }, + "node_modules/eslint-plugin-header": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", + "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", + "dev": true, + "peerDependencies": { + "eslint": ">=7.7.0" + } + }, "node_modules/eslint-plugin-import": { "version": "2.22.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", @@ -15335,6 +15345,13 @@ "regexpp": "^3.0.0" } }, + "eslint-plugin-header": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", + "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", + "dev": true, + "requires": {} + }, "eslint-plugin-import": { "version": "2.22.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", diff --git a/src/fireedge/package.json b/src/fireedge/package.json index 2dcd73be2d..105d637910 100644 --- a/src/fireedge/package.json +++ b/src/fireedge/package.json @@ -34,6 +34,7 @@ "eslint-import-resolver-alias": "1.1.2", "eslint-import-resolver-webpack": "0.13.0", "eslint-plugin-babel": "5.3.1", + "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "2.22.1", "eslint-plugin-jsdoc": "35.4.1", "eslint-plugin-node": "11.1.0",