diff --git a/.eslintrc.json b/.eslintrc.json index a7fc647..383ef5b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -8,81 +8,90 @@ "files": [ "*.ts" ], + "plugins": [ + "jasmine" + ], "extends": [ // "eslint:recommended", // "plugin:@typescript-eslint/recommended", "plugin:@angular-eslint/recommended", - "plugin:@angular-eslint/template/process-inline-templates" + "plugin:@angular-eslint/template/process-inline-templates", + "plugin:jasmine/recommended" ], + "env": { + "jasmine": true + }, "rules": { "array-bracket-spacing": ["error", "always", { "objectsInArrays": false, "arraysInArrays": false, "singleValue": false }], "array-callback-return": "error", - "@typescript-eslint/ban-types": ["error", { "types": { "fdescribe": "Don't focus tests", "fit": "Don't focus tests" }}], + "@typescript-eslint/ban-types": "error", "camelcase": "error", - "comma-dangle": ["error", "always-multiline"] -// "@angular-eslint/component-class-suffix": ["error"], -// "@angular-eslint/component-selector": ["error", { "prefix": "exo", "style": "kebab-case", "type": "element" }], -// "curly": "error", -// "default-case": "error", -// "default-case-last": "error", -// "@angular-eslint/directive-class-suffix": ["error"], -// "@angular-eslint/directive-selector": ["error", { "prefix": "exo", "style": "camelCase", "type": "attribute" }], -// "dot-notation": "error", -// "eqeqeq": ["error"], -// "@typescript-eslint/explicit-function-return-type": "error", -// "getter-return": "error", -// "indent": ["error", 2, { "SwitchCase": 1 }], -// "max-len": ["error", 140], -// "max-lines": ["warn", { "max": 10000, "skipBlankLines": true, "skipComments": true }], -// "max-lines-per-function": ["warn", { "max": 1500, "skipBlankLines": true, "skipComments": true }], -// "max-statements": ["warn", 300], -// "no-alert": "error", -// "no-bitwise": "warn", -// "no-compare-neg-zero": "warn", -// "@angular-eslint/no-conflicting-lifecycle": "error", -// "no-console": ["error"], -// "no-const-assign": "error", -// "no-debugger": "error", -// "no-dupe-args": "error", -// "no-dupe-class-members": "error", -// "no-dupe-else-if": "error", -// "no-dupe-keys": "error", -// "no-duplicate-case": "error", -// "no-duplicate-imports": "error", -// "no-empty": ["error", { "allowEmptyCatch": true }], -// "no-empty-function": "error", -// "@angular-eslint/no-empty-lifecycle-method": "error", -// "no-eval": "warn", -// "no-extra-semi": "error", -// "no-irregular-whitespace": "error", -// "no-lonely-if": "error", -// "no-multi-spaces": ["error", { "ignoreEOLComments": false }], -// "no-multiple-empty-lines": ["error", { "max": 1 }], -// "no-restricted-imports": ["error", "rxjs/Rx", "fs"], -// "no-self-assign": "error", -// "no-self-compare": "error", -// "no-setter-return": "error", -// "no-sparse-arrays": "error", -// "no-template-curly-in-string": "error", -// "no-throw-literal": "error", -// "no-trailing-spaces": "error", -// "no-unreachable": "error", -// "no-unreachable-loop": "error", -// "no-unsafe-optional-chaining": "error", -// "no-unused-expressions": "error", -// "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], -// "no-use-before-define": ["error", { "functions": false, "classes": false, "variables": true, "allowNamedExports": false }], -// "no-whitespace-before-property": ["error"], -// "object-curly-spacing": ["error", "always"], -// "prefer-const": "error", -// "quotes": ["error", "single"], -// "radix": "off", -// "require-jsdoc": "error", -// "semi": ["error", "always"], -// "use-isnan": ["error", { "enforceForSwitchCase": true }], -// "@angular-eslint/use-lifecycle-interface": "error", -// "@angular-eslint/use-pipe-transform-interface": "error", -// "valid-typeof": "error" + "comma-dangle": ["error", "always-multiline"], + "@angular-eslint/component-class-suffix": ["error"], + "@angular-eslint/component-selector": ["error", { "prefix": "exo", "style": "kebab-case", "type": "element" }], + "curly": "error", + "default-case": "error", + "default-case-last": "error", + "@angular-eslint/directive-class-suffix": ["error"], + "@angular-eslint/directive-selector": ["error", { "prefix": "exo", "style": "camelCase", "type": "attribute" }], + "dot-notation": "error", + "eqeqeq": ["error"], + "@typescript-eslint/explicit-function-return-type": "error", + "getter-return": "error", + "indent": ["error", 2, { "SwitchCase": 1 }], + "max-len": ["error", 140], + "max-lines": ["warn", { "max": 1500, "skipBlankLines": true, "skipComments": true }], + "max-lines-per-function": ["warn", { "max": 10, "skipBlankLines": true, "skipComments": true }], + "max-statements": ["warn", 10], + "no-alert": "error", + "no-bitwise": "warn", + "no-compare-neg-zero": "error", + "@angular-eslint/no-conflicting-lifecycle": "error", + "no-console": ["error"], + "no-const-assign": "error", + "no-debugger": "error", + "no-dupe-args": "error", + "no-dupe-class-members": "error", + "no-dupe-else-if": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-duplicate-imports": "error", + "no-empty": ["error", { "allowEmptyCatch": true }], + "no-empty-function": "error", + "@angular-eslint/no-empty-lifecycle-method": "error", + "no-eval": "warn", + "no-extra-semi": "error", + "jasmine/no-focused-tests": 2, + "jasmine/no-disabled-tests": 2, + "no-irregular-whitespace": "error", + "no-lonely-if": "error", + "no-multi-spaces": ["error", { "ignoreEOLComments": false }], + "no-multiple-empty-lines": ["error", { "max": 1 }], + "no-restricted-imports": ["error", "rxjs/Rx", "fs"], + "no-self-assign": "error", + "no-self-compare": "error", + "no-setter-return": "error", + "no-sparse-arrays": "error", + "no-template-curly-in-string": "error", + "no-throw-literal": "error", + "no-trailing-spaces": "error", + "no-unreachable": "error", + "no-unreachable-loop": "error", + "no-unsafe-optional-chaining": "error", + "no-unused-expressions": "error", + "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], + "no-use-before-define": ["error", { "functions": false, "classes": false, "variables": true, "allowNamedExports": false }], + "no-whitespace-before-property": ["error"], + "object-curly-spacing": ["error", "always"], + "prefer-const": "error", + "quotes": ["error", "single"], + "radix": "off", + "require-jsdoc": ["error", {"require": {"FunctionDeclaration": false, "MethodDefinition": true, "ClassDeclaration": false, "ArrowFunctionExpression": false, "FunctionExpression": true}}], + "semi": ["error", "always"], + "use-isnan": ["error", { "enforceForSwitchCase": true }], + "@angular-eslint/use-lifecycle-interface": "error", + "@angular-eslint/use-pipe-transform-interface": "error", + "valid-typeof": "error" } }, { diff --git a/package-lock.json b/package-lock.json index 2d7afbc..bd9e7a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,8 @@ "@typescript-eslint/eslint-plugin": "5.48.2", "@typescript-eslint/parser": "5.48.2", "eslint": "^8.33.0", + "eslint-plugin-jasmine": "^4.1.3", + "eslint-plugin-jsdoc": "^46.5.1", "jasmine-core": "~4.3.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.1.0", @@ -2739,6 +2741,20 @@ "node": ">=10.0.0" } }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", + "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", + "dev": true, + "dependencies": { + "comment-parser": "1.4.0", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.17.8", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", @@ -5395,6 +5411,15 @@ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", @@ -5795,6 +5820,18 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -6077,6 +6114,15 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/comment-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", + "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -7146,6 +7192,84 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-plugin-jasmine": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.3.tgz", + "integrity": "sha512-q8j8KnLH/4uwmPELFZvEyfEcuCuGxXScJaRdqHjOjz064GcfX6aoFbzy5VohZ5QYk2+WvoqMoqDSb9nRLf89GQ==", + "dev": true, + "engines": { + "node": ">=8", + "npm": ">=6" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "46.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.5.1.tgz", + "integrity": "sha512-CPbvKprmEuJYoxMj5g8gXfPqUGgcqMM6jpH06Kp4pn5Uy5MrPkFKzoD7UFp2E4RBzfXbJz1+TeuEivwFVMkXBg==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.40.1", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.0", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -8978,6 +9102,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -9523,6 +9662,15 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -16296,6 +16444,17 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, + "@es-joy/jsdoccomment": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", + "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", + "dev": true, + "requires": { + "comment-parser": "1.4.0", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" + } + }, "@esbuild/android-arm": { "version": "0.17.8", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", @@ -18410,6 +18569,12 @@ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, + "are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true + }, "are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", @@ -18698,6 +18863,12 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, "builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -18903,6 +19074,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "comment-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", + "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", + "dev": true + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -19927,6 +20104,61 @@ } } }, + "eslint-plugin-jasmine": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-4.1.3.tgz", + "integrity": "sha512-q8j8KnLH/4uwmPELFZvEyfEcuCuGxXScJaRdqHjOjz064GcfX6aoFbzy5VohZ5QYk2+WvoqMoqDSb9nRLf89GQ==", + "dev": true + }, + "eslint-plugin-jsdoc": { + "version": "46.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.5.1.tgz", + "integrity": "sha512-CPbvKprmEuJYoxMj5g8gXfPqUGgcqMM6jpH06Kp4pn5Uy5MrPkFKzoD7UFp2E4RBzfXbJz1+TeuEivwFVMkXBg==", + "dev": true, + "requires": { + "@es-joy/jsdoccomment": "~0.40.1", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.0", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -21110,6 +21342,15 @@ "has-tostringtag": "^1.0.0" } }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -21487,6 +21728,12 @@ "esprima": "^4.0.0" } }, + "jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", diff --git a/package.json b/package.json index ab08446..e588c18 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,8 @@ "@typescript-eslint/eslint-plugin": "5.48.2", "@typescript-eslint/parser": "5.48.2", "eslint": "^8.33.0", + "eslint-plugin-jasmine": "^4.1.3", + "eslint-plugin-jsdoc": "^46.5.1", "jasmine-core": "~4.3.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.1.0", @@ -47,4 +49,4 @@ "karma-jasmine-html-reporter": "~2.0.0", "typescript": "~4.8.4" } -} \ No newline at end of file +} diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index 56f5312..0d800f2 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -20,7 +20,7 @@ describe('AppComponent', () => { expect(app).toBeTruthy(); }); - it(`should have as title 'eslint-rules'`, () => { + it('should have as title \'eslint-rules\'', () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; expect(app.title).toEqual('eslint-rules'); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 509acf7..1d7e01a 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-root', + selector: 'exo-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], }) diff --git a/src/app/main/main.component.spec.ts b/src/app/main/main.component.spec.ts index 5db39c1..b4f9b8d 100644 --- a/src/app/main/main.component.spec.ts +++ b/src/app/main/main.component.spec.ts @@ -10,7 +10,7 @@ describe('MainComponent', () => { await TestBed.configureTestingModule({ declarations: [MainComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(MainComponent); component = fixture.componentInstance; diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts index 908c3c8..05e85e9 100644 --- a/src/app/main/main.component.ts +++ b/src/app/main/main.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-main', + selector: 'exo-main', templateUrl: './main.component.html', styleUrls: ['./main.component.scss'], }) diff --git a/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.spec.ts b/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.spec.ts index a11dc49..2cd8d7c 100644 --- a/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.spec.ts +++ b/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.spec.ts @@ -10,7 +10,7 @@ describe('ArrayBracketSpacingComponent', () => { await TestBed.configureTestingModule({ declarations: [ArrayBracketSpacingComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ArrayBracketSpacingComponent); component = fixture.componentInstance; diff --git a/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.ts b/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.ts index e2f62ee..c4f9584 100644 --- a/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.ts +++ b/src/app/rules/array-bracket-spacing/array-bracket-spacing.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-array-bracket-spacing', + selector: 'exo-array-bracket-spacing', templateUrl: './array-bracket-spacing.component.html', styleUrls: ['./array-bracket-spacing.component.scss'], }) diff --git a/src/app/rules/array-callback-return/array-callback-return.component.spec.ts b/src/app/rules/array-callback-return/array-callback-return.component.spec.ts index f2c0a47..1cf5e6b 100644 --- a/src/app/rules/array-callback-return/array-callback-return.component.spec.ts +++ b/src/app/rules/array-callback-return/array-callback-return.component.spec.ts @@ -10,7 +10,7 @@ describe('ArrayCallbackReturnComponent', () => { await TestBed.configureTestingModule({ declarations: [ArrayCallbackReturnComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ArrayCallbackReturnComponent); component = fixture.componentInstance; diff --git a/src/app/rules/array-callback-return/array-callback-return.component.ts b/src/app/rules/array-callback-return/array-callback-return.component.ts index b06f8be..6383afd 100644 --- a/src/app/rules/array-callback-return/array-callback-return.component.ts +++ b/src/app/rules/array-callback-return/array-callback-return.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-array-callback-return', + selector: 'exo-array-callback-return', templateUrl: './array-callback-return.component.html', styleUrls: ['./array-callback-return.component.scss'], }) @@ -11,16 +11,19 @@ export class ArrayCallbackReturnComponent implements OnInit { const myArray: any[] = [{ prop: 'prop1' }, { prop: 'prop2' }, { prop: 'prop3' }]; const undefAllTheThings = myArray.map(item => { item.prop = 'propX'; + return item; }); const indexMap = myArray.reduce(function(memo, item, index) { memo[index] = item; + return memo; }, {}); const foo = Array.from(myArray, function(node) { - if (node.prop === "DIV") { + if (node.prop === 'DIV') { return true; } + return false; }); } } diff --git a/src/app/rules/ban-types/ban-types.component.spec.ts b/src/app/rules/ban-types/ban-types.component.spec.ts index 89f5374..7699355 100644 --- a/src/app/rules/ban-types/ban-types.component.spec.ts +++ b/src/app/rules/ban-types/ban-types.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BanTypesComponent } from './ban-types.component'; -fdescribe('BanTypesComponent', () => { +describe('BanTypesComponent', () => { let component: BanTypesComponent; let fixture: ComponentFixture; @@ -10,14 +10,14 @@ fdescribe('BanTypesComponent', () => { await TestBed.configureTestingModule({ declarations: [BanTypesComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(BanTypesComponent); component = fixture.componentInstance; fixture.detectChanges(); }); - fit('should create', () => { + it('should create', () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/rules/ban-types/ban-types.component.ts b/src/app/rules/ban-types/ban-types.component.ts index 36546b8..0b6bd93 100644 --- a/src/app/rules/ban-types/ban-types.component.ts +++ b/src/app/rules/ban-types/ban-types.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-ban-types', + selector: 'exo-ban-types', templateUrl: './ban-types.component.html', styleUrls: ['./ban-types.component.scss'], }) @@ -14,13 +14,13 @@ export class BanTypesComponent implements OnInit { const symb: symbol = Symbol('foo'); const bigInt: bigint = 1n; - const func: Function = () => 1; + const func: () => number = () => 1; - const lowerObj: Object = {}; - const capitalObj: Object = { a: 'string' }; + const lowerObj: object = {}; + const capitalObj: { a: string } = { a: 'string' }; - const curly1: {} = 1; - const curly2: {} = { a: 'string' }; + const curly1: number = 1; + const curly2: Record<'a', string> = { a: 'string' }; } } diff --git a/src/app/rules/camelcase/camelcase.component.spec.ts b/src/app/rules/camelcase/camelcase.component.spec.ts index 324ffac..6f0e678 100644 --- a/src/app/rules/camelcase/camelcase.component.spec.ts +++ b/src/app/rules/camelcase/camelcase.component.spec.ts @@ -10,7 +10,7 @@ describe('CamelcaseComponent', () => { await TestBed.configureTestingModule({ declarations: [CamelcaseComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(CamelcaseComponent); component = fixture.componentInstance; diff --git a/src/app/rules/camelcase/camelcase.component.ts b/src/app/rules/camelcase/camelcase.component.ts index 73cdd71..21ad7c6 100644 --- a/src/app/rules/camelcase/camelcase.component.ts +++ b/src/app/rules/camelcase/camelcase.component.ts @@ -1,23 +1,23 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-camelcase', + selector: 'exo-camelcase', templateUrl: './camelcase.component.html', styleUrls: ['./camelcase.component.scss'], }) export class CamelcaseComponent implements OnInit { ngOnInit() { - const my_favorite_color = '#112C85'; + const myFavoriteColor = '#112C85'; const obj = { - my_pref: 1, + myPref: 1, }; - obj.do_something = function() { + obj.doSomething = function() { // ... }; - const { category_id = 1 } = query; - const { foo: no_camelcased } = bar; - const { foo: bar_baz = 1 } = quz; + const { categoryId = 1 } = query; + const { foo: noCamelcased } = bar; + const { foo: barBaz = 1 } = quz; } } diff --git a/src/app/rules/comma-dangle/comma-dangle.component.spec.ts b/src/app/rules/comma-dangle/comma-dangle.component.spec.ts index 29fc17b..a7b4664 100644 --- a/src/app/rules/comma-dangle/comma-dangle.component.spec.ts +++ b/src/app/rules/comma-dangle/comma-dangle.component.spec.ts @@ -10,7 +10,7 @@ describe('CommaDangleComponent', () => { await TestBed.configureTestingModule({ declarations: [CommaDangleComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(CommaDangleComponent); component = fixture.componentInstance; diff --git a/src/app/rules/comma-dangle/comma-dangle.component.ts b/src/app/rules/comma-dangle/comma-dangle.component.ts index ff0be5d..fd9c276 100644 --- a/src/app/rules/comma-dangle/comma-dangle.component.ts +++ b/src/app/rules/comma-dangle/comma-dangle.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-comma-dangle', + selector: 'exo-comma-dangle', templateUrl: './comma-dangle.component.html', styleUrls: ['./comma-dangle.component.scss'], }) @@ -9,11 +9,11 @@ export class CommaDangleComponent implements OnInit { ngOnInit() { const foo = { - bar: "baz", - qux: "quux", + bar: 'baz', + qux: 'quux', }; - const foo = { bar: "baz", qux: "quux" }; + const foo = { bar: 'baz', qux: 'quux' }; const arr = [ 1,2 ]; const arr = [ 1, 2 ]; @@ -24,8 +24,8 @@ export class CommaDangleComponent implements OnInit { ]; foo({ - bar: "baz", - qux: "quux", + bar: 'baz', + qux: 'quux', }); } diff --git a/src/app/rules/component-class-suffix/component-class-suffix.component.spec.ts b/src/app/rules/component-class-suffix/component-class-suffix.component.spec.ts index 7baaf87..2b08934 100644 --- a/src/app/rules/component-class-suffix/component-class-suffix.component.spec.ts +++ b/src/app/rules/component-class-suffix/component-class-suffix.component.spec.ts @@ -10,7 +10,7 @@ describe('ComponentClassSuffixComponent', () => { await TestBed.configureTestingModule({ declarations: [ComponentClassSuffixComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ComponentClassSuffixComponent); component = fixture.componentInstance; diff --git a/src/app/rules/component-class-suffix/component-class-suffix.component.ts b/src/app/rules/component-class-suffix/component-class-suffix.component.ts index 65de33e..d19e462 100644 --- a/src/app/rules/component-class-suffix/component-class-suffix.component.ts +++ b/src/app/rules/component-class-suffix/component-class-suffix.component.ts @@ -1,10 +1,10 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; @Component({ - selector: 'app-component-class-suffix', + selector: 'exo-component-class-suffix', templateUrl: './component-class-suffix.component.html', styleUrls: ['./component-class-suffix.component.scss'], }) -export class ComponentClassSuffix { +export class ComponentClassSuffixComponent { } diff --git a/src/app/rules/component-selector/component-selector.component.spec.ts b/src/app/rules/component-selector/component-selector.component.spec.ts index 8bdf32b..58350fa 100644 --- a/src/app/rules/component-selector/component-selector.component.spec.ts +++ b/src/app/rules/component-selector/component-selector.component.spec.ts @@ -10,7 +10,7 @@ describe('ComponentSelectorComponent', () => { await TestBed.configureTestingModule({ declarations: [ComponentSelectorComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ComponentSelectorComponent); component = fixture.componentInstance; diff --git a/src/app/rules/component-selector/component-selector.component.ts b/src/app/rules/component-selector/component-selector.component.ts index d6969d0..81e9af8 100644 --- a/src/app/rules/component-selector/component-selector.component.ts +++ b/src/app/rules/component-selector/component-selector.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-component-selector', + selector: 'exo-component-selector', templateUrl: './component-selector.component.html', styleUrls: ['./component-selector.component.scss'], }) diff --git a/src/app/rules/curly/curly.component.spec.ts b/src/app/rules/curly/curly.component.spec.ts index 8026f6f..a98fde5 100644 --- a/src/app/rules/curly/curly.component.spec.ts +++ b/src/app/rules/curly/curly.component.spec.ts @@ -10,7 +10,7 @@ describe('CurlyComponent', () => { await TestBed.configureTestingModule({ declarations: [CurlyComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(CurlyComponent); component = fixture.componentInstance; diff --git a/src/app/rules/curly/curly.component.ts b/src/app/rules/curly/curly.component.ts index e8a6a44..b192d25 100644 --- a/src/app/rules/curly/curly.component.ts +++ b/src/app/rules/curly/curly.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-curly', + selector: 'exo-curly', templateUrl: './curly.component.html', styleUrls: ['./curly.component.scss'], }) @@ -9,14 +9,14 @@ export class CurlyComponent implements OnInit { ngOnInit() { - if (foo) foo++; + if (foo) {foo++;} while (bar) - baz(); + {baz();} if (foo) { baz(); - } else qux(); + } else {qux();} } } diff --git a/src/app/rules/default-case-last/default-case-last.component.spec.ts b/src/app/rules/default-case-last/default-case-last.component.spec.ts index d0614f5..97afddf 100644 --- a/src/app/rules/default-case-last/default-case-last.component.spec.ts +++ b/src/app/rules/default-case-last/default-case-last.component.spec.ts @@ -10,7 +10,7 @@ describe('DefaultCaseLastComponent', () => { await TestBed.configureTestingModule({ declarations: [DefaultCaseLastComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(DefaultCaseLastComponent); component = fixture.componentInstance; diff --git a/src/app/rules/default-case-last/default-case-last.component.ts b/src/app/rules/default-case-last/default-case-last.component.ts index 175ec02..b6325eb 100644 --- a/src/app/rules/default-case-last/default-case-last.component.ts +++ b/src/app/rules/default-case-last/default-case-last.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-default-case-last', + selector: 'exo-default-case-last', templateUrl: './default-case-last.component.html', styleUrls: ['./default-case-last.component.scss'], }) @@ -12,20 +12,20 @@ export class DefaultCaseLastComponent implements OnInit { case 1: bar(); break; - default: - baz(); - break; case 2: quux(); break; + default: + baz(); + break; } switch (foo) { - case "x": + case 'x': bar(); break; + case 'y': default: - case "y": baz(); break; } diff --git a/src/app/rules/default-case/default-case.component.spec.ts b/src/app/rules/default-case/default-case.component.spec.ts index 6d75c62..b860679 100644 --- a/src/app/rules/default-case/default-case.component.spec.ts +++ b/src/app/rules/default-case/default-case.component.spec.ts @@ -10,7 +10,7 @@ describe('DefaultCaseComponent', () => { await TestBed.configureTestingModule({ declarations: [DefaultCaseComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(DefaultCaseComponent); component = fixture.componentInstance; diff --git a/src/app/rules/default-case/default-case.component.ts b/src/app/rules/default-case/default-case.component.ts index 363ad86..abf4cb9 100644 --- a/src/app/rules/default-case/default-case.component.ts +++ b/src/app/rules/default-case/default-case.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-default-case', + selector: 'exo-default-case', templateUrl: './default-case.component.html', styleUrls: ['./default-case.component.scss'], }) @@ -15,6 +15,9 @@ export class DefaultCaseComponent implements OnInit { case 2: /* code */ break; + default: + /* code */ + break; } } diff --git a/src/app/rules/directive-class-suffix/directive-class-suffix.component.spec.ts b/src/app/rules/directive-class-suffix/directive-class-suffix.component.spec.ts index efbbff9..44918c5 100644 --- a/src/app/rules/directive-class-suffix/directive-class-suffix.component.spec.ts +++ b/src/app/rules/directive-class-suffix/directive-class-suffix.component.spec.ts @@ -10,7 +10,7 @@ describe('DirectiveClassSuffixComponent', () => { await TestBed.configureTestingModule({ declarations: [DirectiveClassSuffixComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(DirectiveClassSuffixComponent); component = fixture.componentInstance; diff --git a/src/app/rules/directive-class-suffix/directive-class-suffix.component.ts b/src/app/rules/directive-class-suffix/directive-class-suffix.component.ts index 576ba2a..7bb6b4b 100644 --- a/src/app/rules/directive-class-suffix/directive-class-suffix.component.ts +++ b/src/app/rules/directive-class-suffix/directive-class-suffix.component.ts @@ -1,18 +1,15 @@ -import { Component, Directive, OnInit } from '@angular/core'; +import { Component, Directive } from '@angular/core'; @Directive({ - selector: 'sg-foo-bar', + selector: '[exoSgFooBar]', }) -class Test {} +class TestDirective {} @Component({ - selector: 'app-directive-class-suffix', + selector: 'exo-directive-class-suffix', templateUrl: './directive-class-suffix.component.html', styleUrls: ['./directive-class-suffix.component.scss'], }) -export class DirectiveClassSuffixComponent implements OnInit { - - ngOnInit() { - } +export class DirectiveClassSuffixComponent { } diff --git a/src/app/rules/directive-selector/directive-selector.component.spec.ts b/src/app/rules/directive-selector/directive-selector.component.spec.ts index 3659d26..e132b9f 100644 --- a/src/app/rules/directive-selector/directive-selector.component.spec.ts +++ b/src/app/rules/directive-selector/directive-selector.component.spec.ts @@ -10,7 +10,7 @@ describe('DirectiveSelectorComponent', () => { await TestBed.configureTestingModule({ declarations: [DirectiveSelectorComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(DirectiveSelectorComponent); component = fixture.componentInstance; diff --git a/src/app/rules/directive-selector/directive-selector.component.ts b/src/app/rules/directive-selector/directive-selector.component.ts index 921c8ed..237cd3b 100644 --- a/src/app/rules/directive-selector/directive-selector.component.ts +++ b/src/app/rules/directive-selector/directive-selector.component.ts @@ -1,18 +1,15 @@ -import { Component, Directive, OnInit } from '@angular/core'; +import { Component, Directive } from '@angular/core'; @Directive({ - selector: 'sg-foo-bar', + selector: '[exoSgFooBar]', }) -class Test {} +class TestDirective {} @Component({ - selector: 'app-directive-selector', + selector: 'exo-directive-selector', templateUrl: './directive-selector.component.html', styleUrls: ['./directive-selector.component.scss'], }) -export class DirectiveSelectorComponent implements OnInit { - - ngOnInit() { - } +export class DirectiveSelectorComponent { } diff --git a/src/app/rules/dot-notation/dot-notation.component.spec.ts b/src/app/rules/dot-notation/dot-notation.component.spec.ts index f58f826..f53f175 100644 --- a/src/app/rules/dot-notation/dot-notation.component.spec.ts +++ b/src/app/rules/dot-notation/dot-notation.component.spec.ts @@ -10,7 +10,7 @@ describe('DotNotationComponent', () => { await TestBed.configureTestingModule({ declarations: [DotNotationComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(DotNotationComponent); component = fixture.componentInstance; diff --git a/src/app/rules/dot-notation/dot-notation.component.ts b/src/app/rules/dot-notation/dot-notation.component.ts index f9344be..7596874 100644 --- a/src/app/rules/dot-notation/dot-notation.component.ts +++ b/src/app/rules/dot-notation/dot-notation.component.ts @@ -1,14 +1,14 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-dot-notation', + selector: 'exo-dot-notation', templateUrl: './dot-notation.component.html', styleUrls: ['./dot-notation.component.scss'], }) export class DotNotationComponent implements OnInit { ngOnInit() { - const x = foo["bar"]; + const x = foo.bar; } } diff --git a/src/app/rules/eqeqeq/eqeqeq.component.spec.ts b/src/app/rules/eqeqeq/eqeqeq.component.spec.ts index ca0edd7..3e2bb93 100644 --- a/src/app/rules/eqeqeq/eqeqeq.component.spec.ts +++ b/src/app/rules/eqeqeq/eqeqeq.component.spec.ts @@ -10,7 +10,7 @@ describe('EqeqeqComponent', () => { await TestBed.configureTestingModule({ declarations: [EqeqeqComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(EqeqeqComponent); component = fixture.componentInstance; diff --git a/src/app/rules/eqeqeq/eqeqeq.component.ts b/src/app/rules/eqeqeq/eqeqeq.component.ts index 2cf566d..b302c16 100644 --- a/src/app/rules/eqeqeq/eqeqeq.component.ts +++ b/src/app/rules/eqeqeq/eqeqeq.component.ts @@ -1,18 +1,24 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-eqeqeq', + selector: 'exo-eqeqeq', templateUrl: './eqeqeq.component.html', styleUrls: ['./eqeqeq.component.scss'], }) export class EqeqeqComponent implements OnInit { ngOnInit() { - if (x == 42) { } + if (x === 42) { + // do nothing + } - if ('' == text) { } + if ('' === text) { + // do nothing + } - if (obj.getStuff() != undefined) { } + if (obj.getStuff() !== undefined) { + // do nothing + } } } diff --git a/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.spec.ts b/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.spec.ts index 03f27e9..4cfb5c7 100644 --- a/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.spec.ts +++ b/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.spec.ts @@ -10,7 +10,7 @@ describe('ExplicitFunctionReturnTypeComponent', () => { await TestBed.configureTestingModule({ declarations: [ExplicitFunctionReturnTypeComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ExplicitFunctionReturnTypeComponent); component = fixture.componentInstance; diff --git a/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.ts b/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.ts index e1c743a..91cfeb4 100644 --- a/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.ts +++ b/src/app/rules/explicit-function-return-type/explicit-function-return-type.component.ts @@ -1,25 +1,25 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-explicit-function-return-type', + selector: 'exo-explicit-function-return-type', templateUrl: './explicit-function-return-type.component.html', styleUrls: ['./explicit-function-return-type.component.scss'], }) export class ExplicitFunctionReturnTypeComponent implements OnInit { - ngOnInit() { - function test() { + ngOnInit(): void { + function test(): void { return; } - const fn = function () { + const fn = function (): number { return 1; }; - const arrowFn = () => 'test'; + const arrowFn = (): string => 'test'; } - method() { + method(): void { return; } diff --git a/src/app/rules/getter-return/getter-return.component.spec.ts b/src/app/rules/getter-return/getter-return.component.spec.ts index 015cf87..181ea91 100644 --- a/src/app/rules/getter-return/getter-return.component.spec.ts +++ b/src/app/rules/getter-return/getter-return.component.spec.ts @@ -10,7 +10,7 @@ describe('GetterReturnComponent', () => { await TestBed.configureTestingModule({ declarations: [GetterReturnComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(GetterReturnComponent); component = fixture.componentInstance; diff --git a/src/app/rules/getter-return/getter-return.component.ts b/src/app/rules/getter-return/getter-return.component.ts index 545bd14..a41e44f 100644 --- a/src/app/rules/getter-return/getter-return.component.ts +++ b/src/app/rules/getter-return/getter-return.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-getter-return', + selector: 'exo-getter-return', templateUrl: './getter-return.component.html', styleUrls: ['./getter-return.component.scss'], }) @@ -10,19 +10,19 @@ export class GetterReturnComponent implements OnInit { ngOnInit() { p = { get name(){ - + return ''; }, }; - Object.defineProperty(p, "age", { + Object.defineProperty(p, 'age', { get: function (){ - + return ''; }, }); class P { get name() { - + return ''; } } } diff --git a/src/app/rules/indent/indent.component.spec.ts b/src/app/rules/indent/indent.component.spec.ts index f204c83..9b26ee7 100644 --- a/src/app/rules/indent/indent.component.spec.ts +++ b/src/app/rules/indent/indent.component.spec.ts @@ -10,7 +10,7 @@ describe('IndentComponent', () => { await TestBed.configureTestingModule({ declarations: [IndentComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(IndentComponent); component = fixture.componentInstance; diff --git a/src/app/rules/indent/indent.component.ts b/src/app/rules/indent/indent.component.ts index e210df9..862545d 100644 --- a/src/app/rules/indent/indent.component.ts +++ b/src/app/rules/indent/indent.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-indent', + selector: 'exo-indent', templateUrl: './indent.component.html', styleUrls: ['./indent.component.scss'], }) @@ -9,17 +9,17 @@ export class IndentComponent implements OnInit { ngOnInit() { switch(a){ - case "a": + case 'a': break; - case "b": + case 'b': break; } if (a) { - b=c; - function foo(d) { - e=f; - } + b=c; + function foo(d) { + e=f; + } } } diff --git a/src/app/rules/max-len/max-len.component.spec.ts b/src/app/rules/max-len/max-len.component.spec.ts index 1b6d154..b95246f 100644 --- a/src/app/rules/max-len/max-len.component.spec.ts +++ b/src/app/rules/max-len/max-len.component.spec.ts @@ -10,7 +10,7 @@ describe('MaxLenComponent', () => { await TestBed.configureTestingModule({ declarations: [MaxLenComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(MaxLenComponent); component = fixture.componentInstance; diff --git a/src/app/rules/max-len/max-len.component.ts b/src/app/rules/max-len/max-len.component.ts index 381b2ba..4cd60d1 100644 --- a/src/app/rules/max-len/max-len.component.ts +++ b/src/app/rules/max-len/max-len.component.ts @@ -1,16 +1,22 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-max-len', + selector: 'exo-max-len', templateUrl: './max-len.component.html', styleUrls: ['./max-len.component.scss'], }) export class MaxLenComponent implements OnInit { ngOnInit() { - const foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; + const foo = { + 'bar': 'This is a bar.', + 'baz': { 'qux': 'This is a qux' }, + 'difficult': 'to read', + }; - const textString = 'Exads - Save time and money with a customized and self-serve ad platform built for your advertising business. Reach your goals with our infrastructure!'; + const textString = 'Exads - Save time and money with a customized and ' + + 'self-serve ad platform built for your advertising business. ' + + 'Reach your goals with our infrastructure!'; } } diff --git a/src/app/rules/max-lines-per-function/max-lines-per-function.component.spec.ts b/src/app/rules/max-lines-per-function/max-lines-per-function.component.spec.ts index 4202fdb..23ca796 100644 --- a/src/app/rules/max-lines-per-function/max-lines-per-function.component.spec.ts +++ b/src/app/rules/max-lines-per-function/max-lines-per-function.component.spec.ts @@ -10,7 +10,7 @@ describe('MaxLinesPerFunctionComponent', () => { await TestBed.configureTestingModule({ declarations: [MaxLinesPerFunctionComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(MaxLinesPerFunctionComponent); component = fixture.componentInstance; diff --git a/src/app/rules/max-lines-per-function/max-lines-per-function.component.ts b/src/app/rules/max-lines-per-function/max-lines-per-function.component.ts index 3d803fa..c3bdb77 100644 --- a/src/app/rules/max-lines-per-function/max-lines-per-function.component.ts +++ b/src/app/rules/max-lines-per-function/max-lines-per-function.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-max-lines-per-function', + selector: 'exo-max-lines-per-function', templateUrl: './max-lines-per-function.component.html', styleUrls: ['./max-lines-per-function.component.scss'], }) @@ -16,10 +16,6 @@ export class MaxLinesPerFunctionComponent implements OnInit { const xpto6 = 1; const xpto7 = 1; const xpto8 = 1; - const xpto9 = 1; - const xpto10 = 1; - const xpto11 = 1; - const xpto12 = 1; } } diff --git a/src/app/rules/max-lines/max-lines.component.spec.ts b/src/app/rules/max-lines/max-lines.component.spec.ts index 3dd7d52..29d4e5e 100644 --- a/src/app/rules/max-lines/max-lines.component.spec.ts +++ b/src/app/rules/max-lines/max-lines.component.spec.ts @@ -10,7 +10,7 @@ describe('MaxLinesComponent', () => { await TestBed.configureTestingModule({ declarations: [MaxLinesComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(MaxLinesComponent); component = fixture.componentInstance; diff --git a/src/app/rules/max-lines/max-lines.component.ts b/src/app/rules/max-lines/max-lines.component.ts index 6ca694f..076969a 100644 --- a/src/app/rules/max-lines/max-lines.component.ts +++ b/src/app/rules/max-lines/max-lines.component.ts @@ -1,15 +1,13 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-max-lines', + selector: 'exo-max-lines', templateUrl: './max-lines.component.html', styleUrls: ['./max-lines.component.scss'], }) export class MaxLinesComponent implements OnInit { ngOnInit() { - const a, - b, - c; + const a, b, c; } } diff --git a/src/app/rules/max-statements/max-statements.component.spec.ts b/src/app/rules/max-statements/max-statements.component.spec.ts index ffaaf67..fbf2003 100644 --- a/src/app/rules/max-statements/max-statements.component.spec.ts +++ b/src/app/rules/max-statements/max-statements.component.spec.ts @@ -10,7 +10,7 @@ describe('MaxStatementsComponent', () => { await TestBed.configureTestingModule({ declarations: [MaxStatementsComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(MaxStatementsComponent); component = fixture.componentInstance; diff --git a/src/app/rules/max-statements/max-statements.component.ts b/src/app/rules/max-statements/max-statements.component.ts index 0b3abf5..ce66a3a 100644 --- a/src/app/rules/max-statements/max-statements.component.ts +++ b/src/app/rules/max-statements/max-statements.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-max-statements', + selector: 'exo-max-statements', templateUrl: './max-statements.component.html', styleUrls: ['./max-statements.component.scss'], }) @@ -16,10 +16,6 @@ export class MaxStatementsComponent implements OnInit { const xpto8 = 1; const xpto9 = 1; const xpto10 = 1; - const xpto11 = 1; - const xpto12 = 1; - const xpto13 = 1; - const xpto14 = 1; } } diff --git a/src/app/rules/no-alert/no-alert.component.spec.ts b/src/app/rules/no-alert/no-alert.component.spec.ts index ba5fe9d..85ae6eb 100644 --- a/src/app/rules/no-alert/no-alert.component.spec.ts +++ b/src/app/rules/no-alert/no-alert.component.spec.ts @@ -10,7 +10,7 @@ describe('NoAlertComponent', () => { await TestBed.configureTestingModule({ declarations: [NoAlertComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoAlertComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-alert/no-alert.component.ts b/src/app/rules/no-alert/no-alert.component.ts index b14a364..36cc3d6 100644 --- a/src/app/rules/no-alert/no-alert.component.ts +++ b/src/app/rules/no-alert/no-alert.component.ts @@ -1,18 +1,18 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-alert', + selector: 'exo-no-alert', templateUrl: './no-alert.component.html', styleUrls: ['./no-alert.component.scss'], }) export class NoAlertComponent implements OnInit { ngOnInit() { - alert("here!"); + customAlert('here!'); // custom library - confirm("Are you sure?"); + customConfirm('Are you sure?'); // custom library - prompt("What's your name?", "John Doe"); + customPrompt('What\'s your name?', 'John Doe'); // custom library } } diff --git a/src/app/rules/no-bitwise/no-bitwise.component.spec.ts b/src/app/rules/no-bitwise/no-bitwise.component.spec.ts index 6626da0..b936bd0 100644 --- a/src/app/rules/no-bitwise/no-bitwise.component.spec.ts +++ b/src/app/rules/no-bitwise/no-bitwise.component.spec.ts @@ -10,7 +10,7 @@ describe('NoBitwiseComponent', () => { await TestBed.configureTestingModule({ declarations: [NoBitwiseComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoBitwiseComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-bitwise/no-bitwise.component.ts b/src/app/rules/no-bitwise/no-bitwise.component.ts index 3ad8b89..eeb0275 100644 --- a/src/app/rules/no-bitwise/no-bitwise.component.ts +++ b/src/app/rules/no-bitwise/no-bitwise.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-bitwise', + selector: 'exo-no-bitwise', templateUrl: './no-bitwise.component.html', styleUrls: ['./no-bitwise.component.scss'], }) export class NoBitwiseComponent implements OnInit { ngOnInit() { - const a = y | z; + const a = y || z; - const b = y & z; + const b = y && z; - const c = y << z; + const c = y < z; - const d = y >> z; + const d = y > z; } } diff --git a/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.spec.ts b/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.spec.ts index ca9e8ae..96ab884 100644 --- a/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.spec.ts +++ b/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.spec.ts @@ -10,7 +10,7 @@ describe('NoCompareNegZeroComponent', () => { await TestBed.configureTestingModule({ declarations: [NoCompareNegZeroComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoCompareNegZeroComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.ts b/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.ts index 7949f83..3c62e42 100644 --- a/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.ts +++ b/src/app/rules/no-compare-neg-zero/no-compare-neg-zero.component.ts @@ -1,14 +1,14 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-compare-neg-zero', + selector: 'exo-no-compare-neg-zero', templateUrl: './no-compare-neg-zero.component.html', styleUrls: ['./no-compare-neg-zero.component.scss'], }) export class NoCompareNegZeroComponent implements OnInit { ngOnInit() { - if (x === -0) { + if (x === 0) { // doSomething()... } } diff --git a/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.spec.ts b/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.spec.ts index e4f2bfb..1255b6c 100644 --- a/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.spec.ts +++ b/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.spec.ts @@ -10,7 +10,7 @@ describe('NoConflictingLifecycleComponent', () => { await TestBed.configureTestingModule({ declarations: [NoConflictingLifecycleComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoConflictingLifecycleComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.ts b/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.ts index 454ccb9..3f82381 100644 --- a/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.ts +++ b/src/app/rules/no-conflicting-lifecycle/no-conflicting-lifecycle.component.ts @@ -1,13 +1,15 @@ -import { Component, DoCheck, OnChanges } from '@angular/core'; +import { Component } from '@angular/core'; @Component({ - selector: 'app-no-conflicting-lifecycle', + selector: 'exo-no-conflicting-lifecycle', templateUrl: './no-conflicting-lifecycle.component.html', styleUrls: ['./no-conflicting-lifecycle.component.scss'], }) -export class NoConflictingLifecycleComponent implements DoCheck, OnChanges { - test() {} - test1() {} - ngDoCheck() {} - ngOnChanges() {} +export class NoConflictingLifecycleComponent { + test() { + // do nothing + } + test1() { + // do nothing + } } diff --git a/src/app/rules/no-console/no-console.component.spec.ts b/src/app/rules/no-console/no-console.component.spec.ts index 032c831..31474f9 100644 --- a/src/app/rules/no-console/no-console.component.spec.ts +++ b/src/app/rules/no-console/no-console.component.spec.ts @@ -10,7 +10,7 @@ describe('NoConsoleComponent', () => { await TestBed.configureTestingModule({ declarations: [NoConsoleComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoConsoleComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-console/no-console.component.ts b/src/app/rules/no-console/no-console.component.ts index 5b1595a..c29822d 100644 --- a/src/app/rules/no-console/no-console.component.ts +++ b/src/app/rules/no-console/no-console.component.ts @@ -1,17 +1,10 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; @Component({ - selector: 'app-no-console', + selector: 'exo-no-console', templateUrl: './no-console.component.html', styleUrls: ['./no-console.component.scss'], }) -export class NoConsoleComponent implements OnInit { - - ngOnInit() { - console.log("Log a debug level message."); - console.warn("Log a warn level message."); - console.error("Log an error level message."); - console.log = foo(); - } +export class NoConsoleComponent { } diff --git a/src/app/rules/no-const-assign/no-const-assign.component.spec.ts b/src/app/rules/no-const-assign/no-const-assign.component.spec.ts index 58d72f5..db40036 100644 --- a/src/app/rules/no-const-assign/no-const-assign.component.spec.ts +++ b/src/app/rules/no-const-assign/no-const-assign.component.spec.ts @@ -10,7 +10,7 @@ describe('NoConstAssignComponent', () => { await TestBed.configureTestingModule({ declarations: [NoConstAssignComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoConstAssignComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-const-assign/no-const-assign.component.ts b/src/app/rules/no-const-assign/no-const-assign.component.ts index f6bebb8..b3acfc9 100644 --- a/src/app/rules/no-const-assign/no-const-assign.component.ts +++ b/src/app/rules/no-const-assign/no-const-assign.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-const-assign', + selector: 'exo-no-const-assign', templateUrl: './no-const-assign.component.html', styleUrls: ['./no-const-assign.component.scss'], }) export class NoConstAssignComponent implements OnInit { ngOnInit() { - const a = 0; + let a = 0; a = 1; - const b = 0; + let b = 0; b += 1; - const c = 0; + let c = 0; ++c; } diff --git a/src/app/rules/no-debugger/no-debugger.component.spec.ts b/src/app/rules/no-debugger/no-debugger.component.spec.ts index 8d21420..5b22ada 100644 --- a/src/app/rules/no-debugger/no-debugger.component.spec.ts +++ b/src/app/rules/no-debugger/no-debugger.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDebuggerComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDebuggerComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDebuggerComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-debugger/no-debugger.component.ts b/src/app/rules/no-debugger/no-debugger.component.ts index 27bea7a..5df0050 100644 --- a/src/app/rules/no-debugger/no-debugger.component.ts +++ b/src/app/rules/no-debugger/no-debugger.component.ts @@ -1,14 +1,13 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-debugger', + selector: 'exo-no-debugger', templateUrl: './no-debugger.component.html', styleUrls: ['./no-debugger.component.scss'], }) export class NoDebuggerComponent implements OnInit { ngOnInit() { - debugger; const a = 'Exads'; } diff --git a/src/app/rules/no-dupe-args/no-dupe-args.component.spec.ts b/src/app/rules/no-dupe-args/no-dupe-args.component.spec.ts index 4eed251..1fd8630 100644 --- a/src/app/rules/no-dupe-args/no-dupe-args.component.spec.ts +++ b/src/app/rules/no-dupe-args/no-dupe-args.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDupeArgsComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDupeArgsComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDupeArgsComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-dupe-args/no-dupe-args.component.ts b/src/app/rules/no-dupe-args/no-dupe-args.component.ts index bb2d951..3ca2c59 100644 --- a/src/app/rules/no-dupe-args/no-dupe-args.component.ts +++ b/src/app/rules/no-dupe-args/no-dupe-args.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-dupe-args', + selector: 'exo-no-dupe-args', templateUrl: './no-dupe-args.component.html', styleUrls: ['./no-dupe-args.component.scss'], }) export class NoDupeArgsComponent implements OnInit { ngOnInit() { - const bar = function (a, b, a) { - console.log("value of the second a:", a); + const bar = function (a, b) { + console.log('value of a:', a); }; } - foo(a, b, a) { - console.log("value of the second a:", a); + foo(a, b) { + console.log('value of a:', a); } } diff --git a/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.spec.ts b/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.spec.ts index 3debce1..b054395 100644 --- a/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.spec.ts +++ b/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDupeClassMembersComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDupeClassMembersComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDupeClassMembersComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.ts b/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.ts index b1c5e5d..8b8ac17 100644 --- a/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.ts +++ b/src/app/rules/no-dupe-class-members/no-dupe-class-members.component.ts @@ -1,17 +1,15 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-no-dupe-class-members', + selector: 'exo-no-dupe-class-members', templateUrl: './no-dupe-class-members.component.html', styleUrls: ['./no-dupe-class-members.component.scss'], }) export class NoDupeClassMembersComponent { foo; - foo; get bar() { } - bar() { } - bar() { } + bar2() { } } diff --git a/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.spec.ts b/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.spec.ts index 6abba42..5cc4fd1 100644 --- a/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.spec.ts +++ b/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDupeElseIfComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDupeElseIfComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDupeElseIfComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.ts b/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.ts index 3bd825a..7deb4ec 100644 --- a/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.ts +++ b/src/app/rules/no-dupe-else-if/no-dupe-else-if.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-dupe-else-if', + selector: 'exo-no-dupe-else-if', templateUrl: './no-dupe-else-if.component.html', styleUrls: ['./no-dupe-else-if.component.scss'], }) @@ -10,7 +10,7 @@ export class NoDupeElseIfComponent implements OnInit { ngOnInit() { if (isSomething(x)) { foo(); - } else if (isSomething(x)) { + } else if (isSomethingElse(x)) { bar(); } @@ -18,8 +18,6 @@ export class NoDupeElseIfComponent implements OnInit { foo(); } else if (b && c) { baz(); - } else if (b && c) { - quux(); } else { quuux(); } diff --git a/src/app/rules/no-dupe-keys/no-dupe-keys.component.spec.ts b/src/app/rules/no-dupe-keys/no-dupe-keys.component.spec.ts index f453700..f053467 100644 --- a/src/app/rules/no-dupe-keys/no-dupe-keys.component.spec.ts +++ b/src/app/rules/no-dupe-keys/no-dupe-keys.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDupeKeysComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDupeKeysComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDupeKeysComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-dupe-keys/no-dupe-keys.component.ts b/src/app/rules/no-dupe-keys/no-dupe-keys.component.ts index 5b58112..a4233d0 100644 --- a/src/app/rules/no-dupe-keys/no-dupe-keys.component.ts +++ b/src/app/rules/no-dupe-keys/no-dupe-keys.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-dupe-keys', + selector: 'exo-no-dupe-keys', templateUrl: './no-dupe-keys.component.html', styleUrls: ['./no-dupe-keys.component.scss'], }) @@ -9,18 +9,18 @@ export class NoDupeKeysComponent implements OnInit { ngOnInit() { const foo = { - bar: "baz", - bar: "qux", + bar: 'baz', + qux: 'qux', }; const foo = { - "bar": "baz", - bar: "qux", + 'bar': 'baz', + qux: 'qux', }; const foo = { - 0x1: "baz", - 1: "qux", + 0x1: 'baz', + 2: 'qux', }; } diff --git a/src/app/rules/no-duplicate-case/no-duplicate-case.component.spec.ts b/src/app/rules/no-duplicate-case/no-duplicate-case.component.spec.ts index 34ac1b1..c2c231f 100644 --- a/src/app/rules/no-duplicate-case/no-duplicate-case.component.spec.ts +++ b/src/app/rules/no-duplicate-case/no-duplicate-case.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDuplicateCaseComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDuplicateCaseComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDuplicateCaseComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-duplicate-case/no-duplicate-case.component.ts b/src/app/rules/no-duplicate-case/no-duplicate-case.component.ts index 64cc217..e20e931 100644 --- a/src/app/rules/no-duplicate-case/no-duplicate-case.component.ts +++ b/src/app/rules/no-duplicate-case/no-duplicate-case.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-duplicate-case', + selector: 'exo-no-duplicate-case', templateUrl: './no-duplicate-case.component.html', styleUrls: ['./no-duplicate-case.component.scss'], }) @@ -13,7 +13,7 @@ export class NoDuplicateCaseComponent implements OnInit { break; case 2: break; - case 1: // duplicate test expression + case 3: break; default: break; diff --git a/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.spec.ts b/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.spec.ts index ba12c1d..d070331 100644 --- a/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.spec.ts +++ b/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.spec.ts @@ -10,7 +10,7 @@ describe('NoDuplicateImportsComponent', () => { await TestBed.configureTestingModule({ declarations: [NoDuplicateImportsComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoDuplicateImportsComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.ts b/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.ts index a7789a4..4abbd68 100644 --- a/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.ts +++ b/src/app/rules/no-duplicate-imports/no-duplicate-imports.component.ts @@ -1,15 +1,16 @@ -import { Component } from '@angular/core'; -import { OnInit } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-duplicate-imports', + selector: 'exo-no-duplicate-imports', templateUrl: './no-duplicate-imports.component.html', styleUrls: ['./no-duplicate-imports.component.scss'], }) export class NoDuplicateImportsComponent implements OnInit { + foo: string | undefined; + ngOnInit() { - // do nothing + this.foo = ''; } } diff --git a/src/app/rules/no-empty-function/no-empty-function.component.spec.ts b/src/app/rules/no-empty-function/no-empty-function.component.spec.ts index feeb095..4279a21 100644 --- a/src/app/rules/no-empty-function/no-empty-function.component.spec.ts +++ b/src/app/rules/no-empty-function/no-empty-function.component.spec.ts @@ -10,7 +10,7 @@ describe('NoEmptyFunctionComponent', () => { await TestBed.configureTestingModule({ declarations: [NoEmptyFunctionComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoEmptyFunctionComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-empty-function/no-empty-function.component.ts b/src/app/rules/no-empty-function/no-empty-function.component.ts index 0df3835..81575aa 100644 --- a/src/app/rules/no-empty-function/no-empty-function.component.ts +++ b/src/app/rules/no-empty-function/no-empty-function.component.ts @@ -1,18 +1,24 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-empty-function', + selector: 'exo-no-empty-function', templateUrl: './no-empty-function.component.html', styleUrls: ['./no-empty-function.component.scss'], }) export class NoEmptyFunctionComponent implements OnInit { ngOnInit() { - const foo = function() {}; + const foo = function() { + // do nothing + }; - const bar = () => {}; + const bar = () => { + // do nothing + }; } - aaa() {} + aaa() { + // do nothing + } } diff --git a/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.spec.ts b/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.spec.ts index fcd1713..cc1cfe3 100644 --- a/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.spec.ts +++ b/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.spec.ts @@ -10,7 +10,7 @@ describe('NoEmptyLifecycleMethodComponent', () => { await TestBed.configureTestingModule({ declarations: [NoEmptyLifecycleMethodComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoEmptyLifecycleMethodComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.ts b/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.ts index d1593ec..c3a6a12 100644 --- a/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.ts +++ b/src/app/rules/no-empty-lifecycle-method/no-empty-lifecycle-method.component.ts @@ -1,15 +1,20 @@ import { AfterContentChecked, Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-empty-lifecycle-method', + selector: 'exo-no-empty-lifecycle-method', templateUrl: './no-empty-lifecycle-method.component.html', styleUrls: ['./no-empty-lifecycle-method.component.scss'], }) export class NoEmptyLifecycleMethodComponent implements OnInit, AfterContentChecked { + foo: string | undefined; + ngOnInit() { + this.foo = 'text1'; } - ngAfterContentChecked() {} + ngAfterContentChecked() { + this.foo = 'text2'; + } } diff --git a/src/app/rules/no-empty/no-empty.component.spec.ts b/src/app/rules/no-empty/no-empty.component.spec.ts index ffa8c22..3397215 100644 --- a/src/app/rules/no-empty/no-empty.component.spec.ts +++ b/src/app/rules/no-empty/no-empty.component.spec.ts @@ -10,7 +10,7 @@ describe('NoEmptyComponent', () => { await TestBed.configureTestingModule({ declarations: [NoEmptyComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoEmptyComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-empty/no-empty.component.ts b/src/app/rules/no-empty/no-empty.component.ts index c46a418..18a2cb4 100644 --- a/src/app/rules/no-empty/no-empty.component.ts +++ b/src/app/rules/no-empty/no-empty.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-empty', + selector: 'exo-no-empty', templateUrl: './no-empty.component.html', styleUrls: ['./no-empty.component.scss'], }) @@ -9,12 +9,15 @@ export class NoEmptyComponent implements OnInit { ngOnInit() { if (foo) { + // something } while (foo) { + // something } switch(foo) { + // something } } diff --git a/src/app/rules/no-eval/no-eval.component.spec.ts b/src/app/rules/no-eval/no-eval.component.spec.ts index 9e03030..b8dac0a 100644 --- a/src/app/rules/no-eval/no-eval.component.spec.ts +++ b/src/app/rules/no-eval/no-eval.component.spec.ts @@ -10,7 +10,7 @@ describe('NoEvalComponent', () => { await TestBed.configureTestingModule({ declarations: [NoEvalComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoEvalComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-eval/no-eval.component.ts b/src/app/rules/no-eval/no-eval.component.ts index 65dbf29..df49749 100644 --- a/src/app/rules/no-eval/no-eval.component.ts +++ b/src/app/rules/no-eval/no-eval.component.ts @@ -1,16 +1,16 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-eval', + selector: 'exo-no-eval', templateUrl: './no-eval.component.html', styleUrls: ['./no-eval.component.scss'], }) export class NoEvalComponent implements OnInit { ngOnInit() { - const obj = { x: "foo" }, - key = "x", - value = eval("obj." + key); + const obj = { x: 'foo' }, + key = 'x', + value = obj[key]; } } diff --git a/src/app/rules/no-extra-semi/no-extra-semi.component.spec.ts b/src/app/rules/no-extra-semi/no-extra-semi.component.spec.ts index f17bd12..f54162e 100644 --- a/src/app/rules/no-extra-semi/no-extra-semi.component.spec.ts +++ b/src/app/rules/no-extra-semi/no-extra-semi.component.spec.ts @@ -10,7 +10,7 @@ describe('NoExtraSemiComponent', () => { await TestBed.configureTestingModule({ declarations: [NoExtraSemiComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoExtraSemiComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-extra-semi/no-extra-semi.component.ts b/src/app/rules/no-extra-semi/no-extra-semi.component.ts index fbbcd3a..3338967 100644 --- a/src/app/rules/no-extra-semi/no-extra-semi.component.ts +++ b/src/app/rules/no-extra-semi/no-extra-semi.component.ts @@ -1,15 +1,15 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-extra-semi', + selector: 'exo-no-extra-semi', templateUrl: './no-extra-semi.component.html', styleUrls: ['./no-extra-semi.component.scss'], }) export class NoExtraSemiComponent implements OnInit { - field;; + field; ngOnInit() { - const x = 5;; - }; + const x = 5; + } } diff --git a/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.spec.ts b/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.spec.ts index 8fe9714..a21ccd6 100644 --- a/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.spec.ts +++ b/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.spec.ts @@ -10,7 +10,7 @@ describe('NoIrregularWhitespaceComponent', () => { await TestBed.configureTestingModule({ declarations: [NoIrregularWhitespaceComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoIrregularWhitespaceComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.ts b/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.ts index 83f9076..ef5751c 100644 --- a/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.ts +++ b/src/app/rules/no-irregular-whitespace/no-irregular-whitespace.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-no-irregular-whitespace', + selector: 'exo-no-irregular-whitespace', templateUrl: './no-irregular-whitespace.component.html', styleUrls: ['./no-irregular-whitespace.component.scss'], }) @@ -12,7 +12,7 @@ export class NoIrregularWhitespaceComponent { } thing2() { - return 'test'; /**/ + return 'test'; } thing3() { diff --git a/src/app/rules/no-lonely-if/no-lonely-if.component.spec.ts b/src/app/rules/no-lonely-if/no-lonely-if.component.spec.ts index 92860b5..788f856 100644 --- a/src/app/rules/no-lonely-if/no-lonely-if.component.spec.ts +++ b/src/app/rules/no-lonely-if/no-lonely-if.component.spec.ts @@ -10,7 +10,7 @@ describe('NoLonelyIfComponent', () => { await TestBed.configureTestingModule({ declarations: [NoLonelyIfComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoLonelyIfComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-lonely-if/no-lonely-if.component.ts b/src/app/rules/no-lonely-if/no-lonely-if.component.ts index 1538145..81069c8 100644 --- a/src/app/rules/no-lonely-if/no-lonely-if.component.ts +++ b/src/app/rules/no-lonely-if/no-lonely-if.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-lonely-if', + selector: 'exo-no-lonely-if', templateUrl: './no-lonely-if.component.html', styleUrls: ['./no-lonely-if.component.scss'], }) @@ -10,20 +10,16 @@ export class NoLonelyIfComponent implements OnInit { ngOnInit() { if (condition) { // ... - } else { - if (anotherCondition) { - // ... - } + } else if (anotherCondition) { + // ... } if (condition) { // ... + } else if (anotherCondition) { + // ... } else { - if (anotherCondition) { - // ... - } else { - // ... - } + // ... } } diff --git a/src/app/rules/no-multi-spaces/no-multi-spaces.component.spec.ts b/src/app/rules/no-multi-spaces/no-multi-spaces.component.spec.ts index f88b35b..5c915ca 100644 --- a/src/app/rules/no-multi-spaces/no-multi-spaces.component.spec.ts +++ b/src/app/rules/no-multi-spaces/no-multi-spaces.component.spec.ts @@ -10,7 +10,7 @@ describe('NoMultiSpacesComponent', () => { await TestBed.configureTestingModule({ declarations: [NoMultiSpacesComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoMultiSpacesComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-multi-spaces/no-multi-spaces.component.ts b/src/app/rules/no-multi-spaces/no-multi-spaces.component.ts index 5b5a242..142f7dc 100644 --- a/src/app/rules/no-multi-spaces/no-multi-spaces.component.ts +++ b/src/app/rules/no-multi-spaces/no-multi-spaces.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-multi-spaces', + selector: 'exo-no-multi-spaces', templateUrl: './no-multi-spaces.component.html', styleUrls: ['./no-multi-spaces.component.scss'], }) export class NoMultiSpacesComponent implements OnInit { ngOnInit() { - const a = 1; + const a = 1; - if(foo === "bar") {} + if(foo === 'bar') {} - const arr = [ 1, 2 ]; + const arr = [ 1, 2 ]; - const x = a ? b: c; + const x = a ? b: c; } } diff --git a/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.spec.ts b/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.spec.ts index 8353dc9..eff5e01 100644 --- a/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.spec.ts +++ b/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.spec.ts @@ -10,7 +10,7 @@ describe('NoMultipleEmptyLinesComponent', () => { await TestBed.configureTestingModule({ declarations: [NoMultipleEmptyLinesComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoMultipleEmptyLinesComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.ts b/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.ts index 32821f0..3c6f4bc 100644 --- a/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.ts +++ b/src/app/rules/no-multiple-empty-lines/no-multiple-empty-lines.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-multiple-empty-lines', + selector: 'exo-no-multiple-empty-lines', templateUrl: './no-multiple-empty-lines.component.html', styleUrls: ['./no-multiple-empty-lines.component.scss'], }) @@ -11,8 +11,6 @@ export class NoMultipleEmptyLinesComponent implements OnInit { const foo = 1; - - const bar = 2; } diff --git a/src/app/rules/no-restricted-imports/no-restricted-imports.component.spec.ts b/src/app/rules/no-restricted-imports/no-restricted-imports.component.spec.ts index 30e56b5..8c57cf4 100644 --- a/src/app/rules/no-restricted-imports/no-restricted-imports.component.spec.ts +++ b/src/app/rules/no-restricted-imports/no-restricted-imports.component.spec.ts @@ -10,7 +10,7 @@ describe('NoRestrictedImportsComponent', () => { await TestBed.configureTestingModule({ declarations: [NoRestrictedImportsComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoRestrictedImportsComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-restricted-imports/no-restricted-imports.component.ts b/src/app/rules/no-restricted-imports/no-restricted-imports.component.ts index 58c04de..c21c2cc 100644 --- a/src/app/rules/no-restricted-imports/no-restricted-imports.component.ts +++ b/src/app/rules/no-restricted-imports/no-restricted-imports.component.ts @@ -1,14 +1,16 @@ import { Component, OnInit } from '@angular/core'; -import fs from 'fs'; @Component({ - selector: 'app-no-restricted-imports', + selector: 'exo-no-restricted-imports', templateUrl: './no-restricted-imports.component.html', styleUrls: ['./no-restricted-imports.component.scss'], }) export class NoRestrictedImportsComponent implements OnInit { + foo: string | undefined; + ngOnInit() { + this.foo = ''; } } diff --git a/src/app/rules/no-self-assign/no-self-assign.component.spec.ts b/src/app/rules/no-self-assign/no-self-assign.component.spec.ts index 7f9b2f2..aa53089 100644 --- a/src/app/rules/no-self-assign/no-self-assign.component.spec.ts +++ b/src/app/rules/no-self-assign/no-self-assign.component.spec.ts @@ -10,7 +10,7 @@ describe('NoSelfAssignComponent', () => { await TestBed.configureTestingModule({ declarations: [NoSelfAssignComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoSelfAssignComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-self-assign/no-self-assign.component.ts b/src/app/rules/no-self-assign/no-self-assign.component.ts index 0b9cece..ebd41e0 100644 --- a/src/app/rules/no-self-assign/no-self-assign.component.ts +++ b/src/app/rules/no-self-assign/no-self-assign.component.ts @@ -1,18 +1,18 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-self-assign', + selector: 'exo-no-self-assign', templateUrl: './no-self-assign.component.html', styleUrls: ['./no-self-assign.component.scss'], }) export class NoSelfAssignComponent implements OnInit { ngOnInit() { - foo = foo; + foo = bar; - [ a, b ] = [ a, b ]; + [ a, b ] = [ b, a ]; - [ a, ...b ] = [ x, ...b ]; + [ a, ...b ] = [ x, ...c ]; } } diff --git a/src/app/rules/no-self-compare/no-self-compare.component.spec.ts b/src/app/rules/no-self-compare/no-self-compare.component.spec.ts index 1a27ab2..61f9485 100644 --- a/src/app/rules/no-self-compare/no-self-compare.component.spec.ts +++ b/src/app/rules/no-self-compare/no-self-compare.component.spec.ts @@ -10,7 +10,7 @@ describe('NoSelfCompareComponent', () => { await TestBed.configureTestingModule({ declarations: [NoSelfCompareComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoSelfCompareComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-self-compare/no-self-compare.component.ts b/src/app/rules/no-self-compare/no-self-compare.component.ts index e4a2935..c73b5ce 100644 --- a/src/app/rules/no-self-compare/no-self-compare.component.ts +++ b/src/app/rules/no-self-compare/no-self-compare.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-self-compare', + selector: 'exo-no-self-compare', templateUrl: './no-self-compare.component.html', styleUrls: ['./no-self-compare.component.scss'], }) @@ -10,7 +10,8 @@ export class NoSelfCompareComponent implements OnInit { ngOnInit() { let x = 10; - if (x === x) { + const y = 10; + if (x === y) { x = 20; } } diff --git a/src/app/rules/no-setter-return/no-setter-return.component.spec.ts b/src/app/rules/no-setter-return/no-setter-return.component.spec.ts index 8a8022e..8faade6 100644 --- a/src/app/rules/no-setter-return/no-setter-return.component.spec.ts +++ b/src/app/rules/no-setter-return/no-setter-return.component.spec.ts @@ -10,7 +10,7 @@ describe('NoSetterReturnComponent', () => { await TestBed.configureTestingModule({ declarations: [NoSetterReturnComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoSetterReturnComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-setter-return/no-setter-return.component.ts b/src/app/rules/no-setter-return/no-setter-return.component.ts index c1be950..4c8aea9 100644 --- a/src/app/rules/no-setter-return/no-setter-return.component.ts +++ b/src/app/rules/no-setter-return/no-setter-return.component.ts @@ -1,14 +1,13 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-no-setter-return', + selector: 'exo-no-setter-return', templateUrl: './no-setter-return.component.html', styleUrls: ['./no-setter-return.component.scss'], }) export class NoSetterReturnComponent { set a(value: number) { this.val = value * 2; - return this.val; } val = 0; diff --git a/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.spec.ts b/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.spec.ts index 5c8a250..8d31085 100644 --- a/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.spec.ts +++ b/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.spec.ts @@ -10,7 +10,7 @@ describe('NoSparseArraysComponent', () => { await TestBed.configureTestingModule({ declarations: [NoSparseArraysComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoSparseArraysComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.ts b/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.ts index 6d87387..0bce505 100644 --- a/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.ts +++ b/src/app/rules/no-sparse-arrays/no-sparse-arrays.component.ts @@ -1,15 +1,15 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-sparse-arrays', + selector: 'exo-no-sparse-arrays', templateUrl: './no-sparse-arrays.component.html', styleUrls: ['./no-sparse-arrays.component.scss'], }) export class NoSparseArraysComponent implements OnInit { ngOnInit() { - const items = [,]; - const colors = [ "red",, "blue" ]; + const items = []; + const colors = [ 'red', 'blue' ]; } } diff --git a/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.spec.ts b/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.spec.ts index af27c28..5ad216d 100644 --- a/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.spec.ts +++ b/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.spec.ts @@ -10,7 +10,7 @@ describe('NoTemplateCurlyInStringComponent', () => { await TestBed.configureTestingModule({ declarations: [NoTemplateCurlyInStringComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoTemplateCurlyInStringComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.ts b/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.ts index 27d66c2..3bbb1f6 100644 --- a/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.ts +++ b/src/app/rules/no-template-curly-in-string/no-template-curly-in-string.component.ts @@ -1,16 +1,15 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-template-curly-in-string', + selector: 'exo-no-template-curly-in-string', templateUrl: './no-template-curly-in-string.component.html', styleUrls: ['./no-template-curly-in-string.component.scss'], }) export class NoTemplateCurlyInStringComponent implements OnInit { ngOnInit() { - "My name is ${name}!"; - 'My name is ${name}!'; - "This is a calculation result: ${3 * 10 * 42}"; + `My name is ${name}!`; + `This is a calculation result: ${3 * 10 * 42}`; } } diff --git a/src/app/rules/no-throw-literal/no-throw-literal.component.spec.ts b/src/app/rules/no-throw-literal/no-throw-literal.component.spec.ts index 5b7ff9d..ab5e84e 100644 --- a/src/app/rules/no-throw-literal/no-throw-literal.component.spec.ts +++ b/src/app/rules/no-throw-literal/no-throw-literal.component.spec.ts @@ -10,7 +10,7 @@ describe('NoThrowLiteralComponent', () => { await TestBed.configureTestingModule({ declarations: [NoThrowLiteralComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoThrowLiteralComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-throw-literal/no-throw-literal.component.ts b/src/app/rules/no-throw-literal/no-throw-literal.component.ts index 32fe0e0..554e383 100644 --- a/src/app/rules/no-throw-literal/no-throw-literal.component.ts +++ b/src/app/rules/no-throw-literal/no-throw-literal.component.ts @@ -1,24 +1,19 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-throw-literal', + selector: 'exo-no-throw-literal', templateUrl: './no-throw-literal.component.html', styleUrls: ['./no-throw-literal.component.scss'], }) export class NoThrowLiteralComponent implements OnInit { ngOnInit() { - throw "error"; + throw new Error('error'); - throw 0; - - throw undefined; - - throw null; + throw new Error(); const err = new Error(); - throw "an " + err; - throw `${err}`; + throw err; } } diff --git a/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.spec.ts b/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.spec.ts index 6446206..71fbf6e 100644 --- a/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.spec.ts +++ b/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.spec.ts @@ -10,7 +10,7 @@ describe('NoTrailingSpacesComponent', () => { await TestBed.configureTestingModule({ declarations: [NoTrailingSpacesComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoTrailingSpacesComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.ts b/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.ts index b8002ec..66e4c78 100644 --- a/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.ts +++ b/src/app/rules/no-trailing-spaces/no-trailing-spaces.component.ts @@ -1,14 +1,14 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-trailing-spaces', + selector: 'exo-no-trailing-spaces', templateUrl: './no-trailing-spaces.component.html', styleUrls: ['./no-trailing-spaces.component.scss'], }) export class NoTrailingSpacesComponent implements OnInit { ngOnInit() { - const field1 = 'value'; + const field1 = 'value'; const field2 = 'value2'; // this is a comment } diff --git a/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.spec.ts b/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.spec.ts index 65d28c0..6d607a3 100644 --- a/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.spec.ts +++ b/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.spec.ts @@ -10,7 +10,7 @@ describe('NoUnreachableLoopComponent', () => { await TestBed.configureTestingModule({ declarations: [NoUnreachableLoopComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoUnreachableLoopComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.ts b/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.ts index 0f85718..62b7b54 100644 --- a/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.ts +++ b/src/app/rules/no-unreachable-loop/no-unreachable-loop.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-unreachable-loop', + selector: 'exo-no-unreachable-loop', templateUrl: './no-unreachable-loop.component.html', styleUrls: ['./no-unreachable-loop.component.scss'], }) @@ -11,16 +11,14 @@ export class NoUnreachableLoopComponent implements OnInit { while (foo) { doSomething(foo); foo = foo.parent; - break; } for (var i = 0; i < arr.length; i++) { if (isSomething(arr[i])) { return arr[i]; - } else { - throw new Error("Doesn't exist."); } } + throw new Error('Doesn\'t exist.'); } } diff --git a/src/app/rules/no-unreachable/no-unreachable.component.spec.ts b/src/app/rules/no-unreachable/no-unreachable.component.spec.ts index 04f164d..e8e95a9 100644 --- a/src/app/rules/no-unreachable/no-unreachable.component.spec.ts +++ b/src/app/rules/no-unreachable/no-unreachable.component.spec.ts @@ -10,7 +10,7 @@ describe('NoUnreachableComponent', () => { await TestBed.configureTestingModule({ declarations: [NoUnreachableComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoUnreachableComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-unreachable/no-unreachable.component.ts b/src/app/rules/no-unreachable/no-unreachable.component.ts index 2dc99d5..7342724 100644 --- a/src/app/rules/no-unreachable/no-unreachable.component.ts +++ b/src/app/rules/no-unreachable/no-unreachable.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-unreachable', + selector: 'exo-no-unreachable', templateUrl: './no-unreachable.component.html', styleUrls: ['./no-unreachable.component.scss'], }) @@ -9,17 +9,17 @@ export class NoUnreachableComponent implements OnInit { ngOnInit() { while(value) { + console.log('done'); break; - console.log("done"); } - throw new Error("Oops!"); - console.log("done"); + console.log('done'); + throw new Error('Oops!'); } foo() { + console.log('done'); return true; - console.log("done"); } } diff --git a/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.spec.ts b/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.spec.ts index 6d5dd8e..0764abb 100644 --- a/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.spec.ts +++ b/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.spec.ts @@ -10,7 +10,7 @@ describe('NoUnsafeOptionalChainingComponent', () => { await TestBed.configureTestingModule({ declarations: [NoUnsafeOptionalChainingComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoUnsafeOptionalChainingComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.ts b/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.ts index ce62284..165af21 100644 --- a/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.ts +++ b/src/app/rules/no-unsafe-optional-chaining/no-unsafe-optional-chaining.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-unsafe-optional-chaining', + selector: 'exo-no-unsafe-optional-chaining', templateUrl: './no-unsafe-optional-chaining.component.html', styleUrls: ['./no-unsafe-optional-chaining.component.scss'], }) export class NoUnsafeOptionalChainingComponent implements OnInit { ngOnInit() { - (obj?.foo)(); + (obj?.foo)?.(); - (obj?.foo).bar; + (obj?.foo)?.bar; - (foo || obj?.foo)(); + (foo || obj?.foo)?.(); - for (bar of obj?.foo); + for (bar of obj.foo){} } } diff --git a/src/app/rules/no-unused-expressions/no-unused-expressions.component.spec.ts b/src/app/rules/no-unused-expressions/no-unused-expressions.component.spec.ts index 9befdbf..ad1337f 100644 --- a/src/app/rules/no-unused-expressions/no-unused-expressions.component.spec.ts +++ b/src/app/rules/no-unused-expressions/no-unused-expressions.component.spec.ts @@ -10,7 +10,7 @@ describe('NoUnusedExpressionsComponent', () => { await TestBed.configureTestingModule({ declarations: [NoUnusedExpressionsComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoUnusedExpressionsComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-unused-expressions/no-unused-expressions.component.ts b/src/app/rules/no-unused-expressions/no-unused-expressions.component.ts index 4ee84af..35b8e15 100644 --- a/src/app/rules/no-unused-expressions/no-unused-expressions.component.ts +++ b/src/app/rules/no-unused-expressions/no-unused-expressions.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-unused-expressions', + selector: 'exo-no-unused-expressions', templateUrl: './no-unused-expressions.component.html', styleUrls: ['./no-unused-expressions.component.scss'], }) @@ -11,6 +11,7 @@ export class NoUnusedExpressionsComponent implements OnInit { let i = 0; function increment() { i += 1; } increment(); + console.log(i); } } diff --git a/src/app/rules/no-unused-vars/no-unused-vars.component.spec.ts b/src/app/rules/no-unused-vars/no-unused-vars.component.spec.ts index 417bb68..68cbb9c 100644 --- a/src/app/rules/no-unused-vars/no-unused-vars.component.spec.ts +++ b/src/app/rules/no-unused-vars/no-unused-vars.component.spec.ts @@ -10,7 +10,7 @@ describe('NoUnusedVarsComponent', () => { await TestBed.configureTestingModule({ declarations: [NoUnusedVarsComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoUnusedVarsComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-unused-vars/no-unused-vars.component.ts b/src/app/rules/no-unused-vars/no-unused-vars.component.ts index 755204a..b1e9abd 100644 --- a/src/app/rules/no-unused-vars/no-unused-vars.component.ts +++ b/src/app/rules/no-unused-vars/no-unused-vars.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-unused-vars', + selector: 'exo-no-unused-vars', templateUrl: './no-unused-vars.component.html', styleUrls: ['./no-unused-vars.component.scss'], }) @@ -10,10 +10,12 @@ export class NoUnusedVarsComponent implements OnInit { foo = 2; ngOnInit() { - const x; + const x = 5; let y = 10; - y = 5; + y = 5 + x; + + this.foo = y; } } diff --git a/src/app/rules/no-use-before-define/no-use-before-define.component.spec.ts b/src/app/rules/no-use-before-define/no-use-before-define.component.spec.ts index cb8683d..24777dd 100644 --- a/src/app/rules/no-use-before-define/no-use-before-define.component.spec.ts +++ b/src/app/rules/no-use-before-define/no-use-before-define.component.spec.ts @@ -10,7 +10,7 @@ describe('NoUseBeforeDefineComponent', () => { await TestBed.configureTestingModule({ declarations: [NoUseBeforeDefineComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoUseBeforeDefineComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-use-before-define/no-use-before-define.component.ts b/src/app/rules/no-use-before-define/no-use-before-define.component.ts index 8777119..a3d6c3a 100644 --- a/src/app/rules/no-use-before-define/no-use-before-define.component.ts +++ b/src/app/rules/no-use-before-define/no-use-before-define.component.ts @@ -1,21 +1,27 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-use-before-define', + selector: 'exo-no-use-before-define', templateUrl: './no-use-before-define.component.html', styleUrls: ['./no-use-before-define.component.scss'], }) export class NoUseBeforeDefineComponent implements OnInit { ngOnInit() { + const b = 1; + + /** + * + */ function function1() { return b; } - const b = 1; - - function2(); + /** + * + */ function function2() {} + function2(); } } diff --git a/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.spec.ts b/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.spec.ts index 990107f..fe21012 100644 --- a/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.spec.ts +++ b/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.spec.ts @@ -10,7 +10,7 @@ describe('NoWhitespaceBeforePropertyComponent', () => { await TestBed.configureTestingModule({ declarations: [NoWhitespaceBeforePropertyComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(NoWhitespaceBeforePropertyComponent); component = fixture.componentInstance; diff --git a/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.ts b/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.ts index 9a9a0d5..a0a22e1 100644 --- a/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.ts +++ b/src/app/rules/no-whitespace-before-property/no-whitespace-before-property.component.ts @@ -1,23 +1,23 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-no-whitespace-before-property', + selector: 'exo-no-whitespace-before-property', templateUrl: './no-whitespace-before-property.component.html', styleUrls: ['./no-whitespace-before-property.component.scss'], }) export class NoWhitespaceBeforePropertyComponent implements OnInit { ngOnInit() { - foo [bar]; - foo. bar; - foo .bar; - foo. bar. baz; + foo[bar]; + foo.bar; + foo.bar; + foo.bar.baz; - foo. bar() + foo.bar() .baz(); foo - .bar(). baz(); + .bar().baz(); } } diff --git a/src/app/rules/object-curly-spacing/object-curly-spacing.component.spec.ts b/src/app/rules/object-curly-spacing/object-curly-spacing.component.spec.ts index 6b12413..a95b5de 100644 --- a/src/app/rules/object-curly-spacing/object-curly-spacing.component.spec.ts +++ b/src/app/rules/object-curly-spacing/object-curly-spacing.component.spec.ts @@ -10,7 +10,7 @@ describe('ObjectCurlySpacingComponent', () => { await TestBed.configureTestingModule({ declarations: [ObjectCurlySpacingComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ObjectCurlySpacingComponent); component = fixture.componentInstance; diff --git a/src/app/rules/object-curly-spacing/object-curly-spacing.component.ts b/src/app/rules/object-curly-spacing/object-curly-spacing.component.ts index 706e05f..9248dba 100644 --- a/src/app/rules/object-curly-spacing/object-curly-spacing.component.ts +++ b/src/app/rules/object-curly-spacing/object-curly-spacing.component.ts @@ -1,22 +1,22 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-object-curly-spacing', + selector: 'exo-object-curly-spacing', templateUrl: './object-curly-spacing.component.html', styleUrls: ['./object-curly-spacing.component.scss'], }) export class ObjectCurlySpacingComponent implements OnInit { ngOnInit() { - const obj1 = {'foo': 'bar'}; - const obj2 = {'foo': 'bar' }; - const obj3 = { baz: {'foo': 'qux'}, bar}; - const obj4 = {baz: { 'foo': 'qux' }, bar}; - const obj5 = {'foo': 'bar', + const obj1 = { 'foo': 'bar' }; + const obj2 = { 'foo': 'bar' }; + const obj3 = { baz: { 'foo': 'qux' }, bar }; + const obj4 = { baz: { 'foo': 'qux' }, bar }; + const obj5 = { 'foo': 'bar', }; const obj6 = { - 'foo':'bar'}; - const {x} = y; + 'foo':'bar' }; + const { x } = y; } } diff --git a/src/app/rules/prefer-const/prefer-const.component.spec.ts b/src/app/rules/prefer-const/prefer-const.component.spec.ts index c681f8c..8b9e7d0 100644 --- a/src/app/rules/prefer-const/prefer-const.component.spec.ts +++ b/src/app/rules/prefer-const/prefer-const.component.spec.ts @@ -10,7 +10,7 @@ describe('PreferConstComponent', () => { await TestBed.configureTestingModule({ declarations: [PreferConstComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(PreferConstComponent); component = fixture.componentInstance; diff --git a/src/app/rules/prefer-const/prefer-const.component.ts b/src/app/rules/prefer-const/prefer-const.component.ts index 1c18f12..73fc584 100644 --- a/src/app/rules/prefer-const/prefer-const.component.ts +++ b/src/app/rules/prefer-const/prefer-const.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-prefer-const', + selector: 'exo-prefer-const', templateUrl: './prefer-const.component.html', styleUrls: ['./prefer-const.component.scss'], }) @@ -9,10 +9,10 @@ export class PreferConstComponent implements OnInit { ngOnInit() { - let field = 3; + const field = 3; console.log(field); - for (let i in [ 1, 2, 3 ]) { + for (const i in [ 1, 2, 3 ]) { console.log(i); } } diff --git a/src/app/rules/quotes/quotes.component.spec.ts b/src/app/rules/quotes/quotes.component.spec.ts index 4f7f006..7fc1295 100644 --- a/src/app/rules/quotes/quotes.component.spec.ts +++ b/src/app/rules/quotes/quotes.component.spec.ts @@ -10,7 +10,7 @@ describe('QuotesComponent', () => { await TestBed.configureTestingModule({ declarations: [QuotesComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(QuotesComponent); component = fixture.componentInstance; diff --git a/src/app/rules/quotes/quotes.component.ts b/src/app/rules/quotes/quotes.component.ts index cca8dac..5dff7b1 100644 --- a/src/app/rules/quotes/quotes.component.ts +++ b/src/app/rules/quotes/quotes.component.ts @@ -1,15 +1,15 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-quotes', + selector: 'exo-quotes', templateUrl: './quotes.component.html', styleUrls: ['./quotes.component.scss'], }) export class QuotesComponent implements OnInit { ngOnInit() { - const double = "double"; - const unescaped = "a string containing 'single' quotes"; + const double = 'double'; + const unescaped = 'a string containing \'single\' quotes'; const backtick = `back${x}tick`; } diff --git a/src/app/rules/radix/radix.component.spec.ts b/src/app/rules/radix/radix.component.spec.ts index 3e356b1..7cbd9e7 100644 --- a/src/app/rules/radix/radix.component.spec.ts +++ b/src/app/rules/radix/radix.component.spec.ts @@ -10,7 +10,7 @@ describe('RadixComponent', () => { await TestBed.configureTestingModule({ declarations: [RadixComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(RadixComponent); component = fixture.componentInstance; diff --git a/src/app/rules/radix/radix.component.ts b/src/app/rules/radix/radix.component.ts index e99acea..4b5c2f7 100644 --- a/src/app/rules/radix/radix.component.ts +++ b/src/app/rules/radix/radix.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; @Component({ - selector: 'app-radix', + selector: 'exo-radix', templateUrl: './radix.component.html', styleUrls: ['./radix.component.scss'], }) diff --git a/src/app/rules/require-jsdoc/require-jsdoc.component.spec.ts b/src/app/rules/require-jsdoc/require-jsdoc.component.spec.ts index ea78b4e..d9e33d2 100644 --- a/src/app/rules/require-jsdoc/require-jsdoc.component.spec.ts +++ b/src/app/rules/require-jsdoc/require-jsdoc.component.spec.ts @@ -10,7 +10,7 @@ describe('RequireJsdocComponent', () => { await TestBed.configureTestingModule({ declarations: [RequireJsdocComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(RequireJsdocComponent); component = fixture.componentInstance; diff --git a/src/app/rules/require-jsdoc/require-jsdoc.component.ts b/src/app/rules/require-jsdoc/require-jsdoc.component.ts index 55b06ac..1c1c187 100644 --- a/src/app/rules/require-jsdoc/require-jsdoc.component.ts +++ b/src/app/rules/require-jsdoc/require-jsdoc.component.ts @@ -1,27 +1,39 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-require-jsdoc', + selector: 'exo-require-jsdoc', templateUrl: './require-jsdoc.component.html', styleUrls: ['./require-jsdoc.component.scss'], }) export class RequireJsdocComponent implements OnInit { obj = { + /** + * bar function + */ bar: function() { return 10; }, + /** + * baz function + */ baz() { return 10; }, }; + /** + * ngOnInit method + */ ngOnInit() { const aaa = () => { return 10; }; } + /** + * foo method + */ foo() { return 10; } diff --git a/src/app/rules/semi/semi.component.spec.ts b/src/app/rules/semi/semi.component.spec.ts index 9965578..268f555 100644 --- a/src/app/rules/semi/semi.component.spec.ts +++ b/src/app/rules/semi/semi.component.spec.ts @@ -10,7 +10,7 @@ describe('SemiComponent', () => { await TestBed.configureTestingModule({ declarations: [SemiComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(SemiComponent); component = fixture.componentInstance; diff --git a/src/app/rules/semi/semi.component.ts b/src/app/rules/semi/semi.component.ts index 359c8ef..c7acc7a 100644 --- a/src/app/rules/semi/semi.component.ts +++ b/src/app/rules/semi/semi.component.ts @@ -1,20 +1,20 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-semi', + selector: 'exo-semi', templateUrl: './semi.component.html', styleUrls: ['./semi.component.scss'], }) export class SemiComponent implements OnInit { - name = "ESLint" + name = 'ESLint'; ngOnInit() { object.method = function() { // ... - } + }; - const field = '' + const field = ''; } } diff --git a/src/app/rules/use-isnan/use-isnan.component.spec.ts b/src/app/rules/use-isnan/use-isnan.component.spec.ts index e3a4c45..817af8e 100644 --- a/src/app/rules/use-isnan/use-isnan.component.spec.ts +++ b/src/app/rules/use-isnan/use-isnan.component.spec.ts @@ -10,7 +10,7 @@ describe('UseIsnanComponent', () => { await TestBed.configureTestingModule({ declarations: [UseIsnanComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(UseIsnanComponent); component = fixture.componentInstance; diff --git a/src/app/rules/use-isnan/use-isnan.component.ts b/src/app/rules/use-isnan/use-isnan.component.ts index bdebc6e..cfdfb2a 100644 --- a/src/app/rules/use-isnan/use-isnan.component.ts +++ b/src/app/rules/use-isnan/use-isnan.component.ts @@ -1,29 +1,30 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-use-isnan', + selector: 'exo-use-isnan', templateUrl: './use-isnan.component.html', styleUrls: ['./use-isnan.component.scss'], }) export class UseIsnanComponent implements OnInit { ngOnInit() { - if (foo == NaN) { + if (isNan(foo)) { // ... } - if (foo != NaN) { + if (!isNaN(foo)) { // ... } - switch (foo) { - case NaN: - bar(); - break; - case 1: - baz(); - break; - // ... + if (Number.isNaN(foo)) { + bar(); + } else { + switch (foo) { + case 1: + baz(); + break; + // ... + } } } diff --git a/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.spec.ts b/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.spec.ts index 5967b86..aa4e359 100644 --- a/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.spec.ts +++ b/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.spec.ts @@ -10,7 +10,7 @@ describe('UseLifecycleInterfaceComponent', () => { await TestBed.configureTestingModule({ declarations: [UseLifecycleInterfaceComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(UseLifecycleInterfaceComponent); component = fixture.componentInstance; diff --git a/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.ts b/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.ts index 5be282e..58b39ae 100644 --- a/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.ts +++ b/src/app/rules/use-lifecycle-interface/use-lifecycle-interface.component.ts @@ -1,11 +1,11 @@ -import { Component, OnInit } from '@angular/core'; +import { AfterViewChecked, AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core'; @Component({ - selector: 'app-use-lifecycle-interface', + selector: 'exo-use-lifecycle-interface', templateUrl: './use-lifecycle-interface.component.html', styleUrls: ['./use-lifecycle-interface.component.scss'], }) -export class UseLifecycleInterfaceComponent implements OnInit { +export class UseLifecycleInterfaceComponent implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit { ngOnInit() {} diff --git a/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.spec.ts b/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.spec.ts index d314471..3c6a9ba 100644 --- a/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.spec.ts +++ b/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.spec.ts @@ -10,7 +10,7 @@ describe('UsePipeTransformInterfaceComponent', () => { await TestBed.configureTestingModule({ declarations: [UsePipeTransformInterfaceComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(UsePipeTransformInterfaceComponent); component = fixture.componentInstance; diff --git a/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.ts b/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.ts index d0d768f..3391d8f 100644 --- a/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.ts +++ b/src/app/rules/use-pipe-transform-interface/use-pipe-transform-interface.component.ts @@ -1,7 +1,7 @@ -import { Pipe } from '@angular/core'; +import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'test' }) -export class UsePipeTransformInterfaceComponent { +export class UsePipeTransformInterfaceComponent implements PipeTransform { transform(value: string) {} } diff --git a/src/app/rules/valid-typeof/valid-typeof.component.spec.ts b/src/app/rules/valid-typeof/valid-typeof.component.spec.ts index ccd75e4..3f02345 100644 --- a/src/app/rules/valid-typeof/valid-typeof.component.spec.ts +++ b/src/app/rules/valid-typeof/valid-typeof.component.spec.ts @@ -10,7 +10,7 @@ describe('ValidTypeofComponent', () => { await TestBed.configureTestingModule({ declarations: [ValidTypeofComponent], }) - .compileComponents(); + .compileComponents(); fixture = TestBed.createComponent(ValidTypeofComponent); component = fixture.componentInstance; diff --git a/src/app/rules/valid-typeof/valid-typeof.component.ts b/src/app/rules/valid-typeof/valid-typeof.component.ts index 81585e6..6d878d3 100644 --- a/src/app/rules/valid-typeof/valid-typeof.component.ts +++ b/src/app/rules/valid-typeof/valid-typeof.component.ts @@ -1,16 +1,16 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'app-valid-typeof', + selector: 'exo-valid-typeof', templateUrl: './valid-typeof.component.html', styleUrls: ['./valid-typeof.component.scss'], }) export class ValidTypeofComponent implements OnInit { ngOnInit() { - typeof foo === "strnig"; - typeof foo == "undefimed"; - typeof bar != "nunber"; - typeof bar !== "fucntion"; + typeof foo === 'string'; + typeof foo === 'undefined'; + typeof bar !== 'number'; + typeof bar !== 'function'; } } diff --git a/src/polyfills.ts b/src/polyfills.ts index 429bb9e..e4555ed 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -45,8 +45,7 @@ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ -import 'zone.js'; // Included with Angular CLI. - +import 'zone.js'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS