From 9cc5595b4a65357b111d82b85f7ebceba8cf45c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edua=CC=81rd=20Pocsta=CC=81r?= Date: Sun, 15 May 2016 21:19:27 +0200 Subject: [PATCH] eslint update and fixes --- .eslintrc | 270 +++++++++++++++++++++++---------------------------- index.js | 82 ++++++++-------- package.json | 2 +- 3 files changed, 165 insertions(+), 189 deletions(-) diff --git a/.eslintrc b/.eslintrc index 86bce71..f71d52c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,152 +1,122 @@ { - "env": { - "node": true - }, - "rules": { - "accessor-pairs": [2], - "block-scoped-var": [2], - "callback-return": [2], - "complexity": [2, 20], - "consistent-return": [2], - "consistent-this": [2, "self"], - "constructor-super": [2], - "default-case": [2], - "eqeqeq": [2], - "func-style": [0], - "global-require": [2], - "guard-for-in": [0], - "handle-callback-err": [2, "^err(or)?$"], - "id-length": [0], - "id-match": [0], - "init-declarations": [0], - "max-depth": [2, 6], - "max-nested-callbacks": [0], - "max-params": [2, 3], - "max-statements": [0], - "new-parens": [0], - "no-alert": [2], - "no-array-constructor": [0], - "no-bitwise": [0], - "no-caller": [2], - "no-case-declarations": [2], - "no-catch-shadow": [2], - "no-class-assign": [2], - "no-cond-assign": [2], - "no-console": [0], - "no-const-assign": [2], - "no-constant-condition": [0], - "no-continue": [0], - "no-control-regex": [2], - "no-debugger": [2], - "no-delete-var": [2], - "no-div-regex": [0], - "no-dupe-args": [2], - "no-dupe-class-members": [2], - "no-dupe-keys": [2], - "no-duplicate-case": [2], - "no-else-return": [0], - "no-empty-character-class": [2], - "no-empty-pattern": [2], - "no-empty": [2], - "no-eq-null": [2], - "no-eval": [2], - "no-ex-assign": [2], - "no-extend-native": [0], - "no-extra-bind": [2], - "no-extra-boolean-cast": [2], - "no-extra-parens": [2], - "no-extra-semi": [2], - "no-fallthrough": [2], - "no-floating-decimal": [2], - "no-func-assign": [2], - "no-implicit-coercion": [2], - "no-implicit-globals": [0], - "no-implied-eval": [2], - "no-inline-comments": [0], - "no-inner-declarations": [2], - "no-invalid-regexp": [2], - "no-invalid-this": [0], - "no-irregular-whitespace": [2], - "no-iterator": [2], - "no-label-var": [2], - "no-labels": [0], - "no-lone-blocks": [2], - "no-lonely-if": [2], - "no-loop-func": [2], - "no-magic-numbers": [0], - "no-mixed-requires": [0], - "no-multi-str": [2], - "no-native-reassign": [2], - "no-negated-condition": [0], - "no-negated-in-lhs": [2], - "no-nested-ternary": [0], - "no-new-func": [0], - "no-new-object": [2], - "no-new-require": [0], - "no-new-wrappers": [2], - "no-new": [2], - "no-obj-calls": [2], - "no-octal-escape": [2], - "no-octal": [2], - "no-param-reassign": [2], - "no-path-concat": [2], - "no-plusplus": [0], - "no-process-env": [2], - "no-process-exit": [0], - "no-proto": [2], - "no-redeclare": [2], - "no-regex-spaces": [0], - "no-restricted-imports": [0], - "no-restricted-syntax": [0], - "no-return-assign": [2], - "no-script-url": [0], - "no-self-compare": [2], - "no-sequences": [2], - "no-shadow-restricted-names": [2], - "no-shadow": [2], - "no-sparse-arrays": [2], - "no-sync": [0], - "no-ternary": [0], - "no-this-before-super": [2], - "no-throw-literal": [2], - "no-undef-init": [0], - "no-undef": [2], - "no-undefined": [0], - "no-unneeded-ternary": [2], - "no-unreachable": [2], - "no-unused-expressions": [2], - "no-unused-vars": [2], - "no-use-before-define": [0], - "no-useless-call": [2], - "no-useless-concat": [2], - "no-var": [0], - "no-void": [0], - "no-with": [2], - "object-shorthand": [0], - "one-var": [0], - "operator-assignment": [2, "always"], - "prefer-arrow-callback": [0], - "prefer-const": [0], - "prefer-reflect": [0], - "prefer-rest-params": [0], - "prefer-spread": [0], - "prefer-template": [0], - "quotes": [0], - "radix": [2, "as-needed"], - "require-yield": [0], - "sort-imports": [0], - "sort-vars": [0], - "strict": [0], - "use-isnan": [2], - "valid-typeof": [2], - "vars-on-top": [0], - "wrap-iife": [2, "inside"], - "wrap-regex": [0], - "yoda": [0], - - "camelcase": [0], - "key-spacing": [0], - "quote-props": [0], - "spaced-comment": [0] - } + 'rules': { + 'space-before-function-paren': [2, { 'named': 'never' }], + 'no-shadow-restricted-names': [2], + 'computed-property-spacing': [2], + 'no-empty-character-class': [2], + 'no-irregular-whitespace': [2], + 'no-unexpected-multiline': [2], + 'no-multiple-empty-lines': [2], + 'no-constant-condition': [2], + 'no-extra-boolean-cast': [2], + 'no-inner-declarations': [2], + 'no-use-before-define': [2], + 'no-array-constructor': [2], + 'object-curly-spacing': [2, 'always'], + 'no-floating-decimal': [2], + 'no-warning-comments': [2], + 'handle-callback-err': [2], + 'no-unneeded-ternary': [2], + 'operator-assignment': [2], + 'space-before-blocks': [2], + 'no-native-reassign': [2], + 'no-trailing-spaces': [2], + 'operator-linebreak': [2, 'after'], + 'consistent-return': [2], + 'no-duplicate-case': [2], + 'no-invalid-regexp': [2], + 'no-negated-in-lhs': [2], + 'no-nested-ternary': [2], + 'no-extend-native': [2], + 'block-scoped-var': [2], + 'no-control-regex': [2], + 'no-sparse-arrays': [2], + 'no-throw-literal': [2], + 'no-return-assign': [2], + 'keyword-spacing': [2], + 'no-extra-parens': [2], + 'no-regex-spaces': [2], + 'no-implied-eval': [2], + 'no-useless-call': [2], + 'no-self-compare': [2], + 'no-octal-escape': [2], + 'no-new-wrappers': [2], + 'no-process-exit': [2], + 'space-infix-ops': [2], + 'space-unary-ops': [2], + 'no-cond-assign': [2], + 'no-func-assign': [2], + 'no-unreachable': [2], + 'accessor-pairs': [2], + 'no-fallthrough': [2], + 'no-path-concat': [2], + 'no-new-require': [2], + 'no-spaced-func': [2], + 'no-unused-vars': [2], + 'spaced-comment': [2], + 'block-spacing': [2], + 'no-delete-var': [2], + 'comma-spacing': [2], + 'no-extra-semi': [2], + 'no-extra-bind': [2], + 'no-new-object': [2], + 'no-multi-str': [2], + 'semi-spacing': [2], + 'no-lonely-if': [2], + 'dot-notation': [2], + 'dot-location': [2, 'property'], + 'comma-dangle': [2, 'never'], + 'no-dupe-args': [2], + 'no-dupe-keys': [2], + 'no-ex-assign': [2], + 'no-obj-calls': [2], + 'valid-typeof': [2], + 'default-case': [2], + 'no-redeclare': [2], + 'no-div-regex': [2], + 'no-sequences': [2], + 'no-label-var': [2], + 'comma-style': [2], + 'brace-style': [2], + 'no-debugger': [2], + 'quote-props': [2, 'consistent-as-needed'], + 'no-iterator': [2], + 'no-new-func': [2], + 'complexity': [2, 40], + 'new-parens': [2], + 'no-eq-null': [2], + 'no-bitwise': [2], + 'wrap-iife': [2], + 'no-caller': [2], + 'use-isnan': [2], + 'no-labels': [2], + 'no-shadow': [2], + 'camelcase': [2], + 'eol-last': [2], + 'no-octal': [2], + 'no-empty': [2], + 'no-alert': [2], + 'no-proto': [2], + 'no-undef': [2], + 'no-eval': [2], + 'no-with': [2], + 'no-void': [2], + 'max-len': [2, 140], + 'new-cap': [2], + 'eqeqeq': [2], + 'no-new': [2], + 'quotes': [2, 'single'], + 'indent': [2, 'tab'], + 'semi': [2, 'always'], + 'yoda': [2, 'never'] + }, + 'parserOptions': { + 'sourceType': 'module' + }, + 'globals': { + 'Promise': false + }, + 'env': { + 'node': true + } } \ No newline at end of file diff --git a/index.js b/index.js index 433e4aa..32cbbe4 100644 --- a/index.js +++ b/index.js @@ -14,16 +14,16 @@ module.exports = postcss.plugin('postcss-high-contrast', function (opts) { borderColor: '#fff', disableShadow: true }); - + var pattern = /(#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})|(rgb|rgba)\((?:\s*\d{1,3}\s*%?\s*,?\s*){3,4}\))/; - + function propInArray(array, prop) { var SELECTOR_SPLIT_PATTERN = /[. #:]/; var retValue = false; var selectors = prop.split(SELECTOR_SPLIT_PATTERN); - - for (var i=0; i < selectors.length; i++){ - if(array.indexOf(selectors[i]) !== -1){ + + for (var i = 0; i < selectors.length; i++) { + if (array.indexOf(selectors[i]) !== -1) { retValue = true; break; } @@ -32,20 +32,20 @@ module.exports = postcss.plugin('postcss-high-contrast', function (opts) { } return function (css) { - + if (opts.aggressiveHC) { css.walkRules( function (rule) { - + var hasColor = rule.nodes.filter( function (node) { var props = ['color']; return props.indexOf(node.prop) !== -1; }).length; - + // Aggressive HC if (propInArray(opts.aggressiveHCDefaultSelectorList, rule.selector)) { - + if (!hasColor) { - rule.append({prop: 'color', value: opts.textColor}); + rule.append({ prop: 'color', value: opts.textColor }); } else { css.walkDecls( function (decl) { if (decl.prop === 'color') { @@ -54,11 +54,11 @@ module.exports = postcss.plugin('postcss-high-contrast', function (opts) { }); } } - + if (propInArray(opts.aggressiveHCCustomSelectorList, rule.selector)) { - + if (!hasColor) { - rule.append({prop: 'color', value: opts.textColor}); + rule.append({ prop: 'color', value: opts.textColor }); } else { css.walkDecls( function (decl) { if (decl.prop === 'color') { @@ -67,7 +67,7 @@ module.exports = postcss.plugin('postcss-high-contrast', function (opts) { }); } } - + // Body Overrides if (rule.selector === 'body') { // Check if body has background or background-color @@ -75,117 +75,123 @@ module.exports = postcss.plugin('postcss-high-contrast', function (opts) { var props = ['background', 'background-color']; return props.indexOf(node.prop) !== -1; }).length; - + // Set background color of body if (!hasBg) { - rule.append({prop: 'background-color', value: opts.backgroundColor}); + rule.append({ + prop: 'background-color', + value: opts.backgroundColor + }); } } }); } - - css.walkDecls( function(decl) { + + css.walkDecls( function (decl) { // Background Colors if (decl.prop === 'background') { if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.backgroundColor); } } - + if (decl.prop === 'background-color') { if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.backgroundColor); } } - + // Colors if (decl.prop === 'color') { if (decl.parent && propInArray(['a'], decl.parent.selector)) { decl.value = opts.linkColor; } - + if (decl.parent && propInArray(['a:hover'], decl.parent.selector)) { decl.value = opts.linkHoverColor; - decl.parent.append({prop: 'background-color', value: opts.linkHoverBgColor}) + decl.parent.append({ + prop: 'background-color', + value: opts.linkHoverBgColor + }); } - + // Text Color if (pattern.test(decl.value) && !propInArray(['a'], decl.parent.selector)) { decl.value = opts.textColor; } } - + // Border Colors if (decl.prop === 'border') { if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.borderColor); } } - + if (decl.prop === 'border-top') { if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.borderColor); } } - + if (decl.prop === 'border-right') { if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.borderColor); } } - + if (decl.prop === 'border-bottom') { if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.borderColor); } } - + if (decl.prop === 'border-left') { - if(pattern.test(decl.value)) { + if (pattern.test(decl.value)) { decl.value = decl.value.replace(pattern, opts.borderColor); } } - + if (decl.prop === 'border-color') { if (pattern.test(decl.value)) { decl.value = opts.borderColor; } } - + if (decl.prop === 'border-top-color') { if (pattern.test(decl.value)) { decl.value = opts.borderColor; } } - + if (decl.prop === 'border-right-color') { if (pattern.test(decl.value)) { decl.value = opts.borderColor; } } - + if (decl.prop === 'border-bottom-color') { if (pattern.test(decl.value)) { decl.value = opts.borderColor; } } - + if (decl.prop === 'border-left-color') { if (pattern.test(decl.value)) { decl.value = opts.borderColor; } } - + // Shadow if (opts.disableShadow) { if (decl.prop === 'box-shadow') { decl.value = 'none'; } - + if (decl.prop === 'text-shadow') { decl.value = 'none'; } } }); - } -}); \ No newline at end of file + }; +}); diff --git a/package.json b/package.json index 4f924d4..5e8285f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "eslint-config-postcss": "^2.0.2" }, "scripts": { - "lint": "eslint *.js --ignore-path .gitignore && jscs *.js", + "lint": "eslint index.js", "test": "ava && eslint test/test.js" }, "eslintConfig": {