From ef52493a55cfa06350f0310c4ea5ec5b25ae58aa Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Thu, 18 May 2017 01:25:36 +0200 Subject: [PATCH] Integrate coffeelint into the project. Known issues: - Currently a dummy transform is needed to apply a different syntax parser (iced-coffee-script-3 in our case) which is situated in `util/dummy-transform`. It's installed as a devDependency. --- .coffeelintignore | 8 ++ coffeelint.json | 141 ++++++++++++++++++++++++++++++ package.json | 7 ++ util/dummy-transform/index.js | 5 ++ util/dummy-transform/package.json | 6 ++ 5 files changed, 167 insertions(+) create mode 100644 .coffeelintignore create mode 100644 coffeelint.json create mode 100644 util/dummy-transform/index.js create mode 100644 util/dummy-transform/package.json diff --git a/.coffeelintignore b/.coffeelintignore new file mode 100644 index 0000000..248d94f --- /dev/null +++ b/.coffeelintignore @@ -0,0 +1,8 @@ +.git* +.docker* + +etc +node_modules + +dist +src.js diff --git a/coffeelint.json b/coffeelint.json new file mode 100644 index 0000000..4cf9558 --- /dev/null +++ b/coffeelint.json @@ -0,0 +1,141 @@ +{ + "arrow_spacing": { + "level": "ignore" + }, + "braces_spacing": { + "level": "ignore", + "spaces": 0, + "empty_object_spaces": 0 + }, + "camel_case_classes": { + "level": "error" + }, + "coffeelint": { + "coffeescript": "iced-coffee-script-3", + "transforms": [ + "dummy-transform" + ] + }, + "coffeescript_error": { + "level": "error" + }, + "colon_assignment_spacing": { + "level": "ignore", + "spacing": { + "left": 0, + "right": 0 + } + }, + "cyclomatic_complexity": { + "level": "ignore", + "value": 10 + }, + "duplicate_key": { + "level": "error" + }, + "empty_constructor_needs_parens": { + "level": "ignore" + }, + "ensure_comprehensions": { + "level": "warn" + }, + "eol_last": { + "level": "ignore" + }, + "indentation": { + "value": 1, + "level": "warn" + }, + "line_endings": { + "level": "ignore", + "value": "unix" + }, + "max_line_length": { + "value": 80, + "level": "error", + "limitComments": true + }, + "missing_fat_arrows": { + "level": "ignore", + "is_strict": false + }, + "newlines_after_classes": { + "value": 3, + "level": "ignore" + }, + "no_backticks": { + "level": "error" + }, + "no_debugger": { + "level": "warn", + "console": false + }, + "no_empty_functions": { + "level": "ignore" + }, + "no_empty_param_list": { + "level": "ignore" + }, + "no_implicit_braces": { + "level": "ignore", + "strict": true + }, + "no_implicit_parens": { + "level": "ignore", + "strict": true + }, + "no_interpolation_in_single_quotes": { + "level": "ignore" + }, + "no_nested_string_interpolation": { + "level": "warn" + }, + "no_plusplus": { + "level": "ignore" + }, + "no_private_function_fat_arrows": { + "level": "warn" + }, + "no_stand_alone_at": { + "level": "ignore" + }, + "no_tabs": { + "level": "ignore" + }, + "no_this": { + "level": "ignore" + }, + "no_throwing_strings": { + "level": "error" + }, + "no_trailing_semicolons": { + "level": "error" + }, + "no_trailing_whitespace": { + "level": "error", + "allowed_in_comments": false, + "allowed_in_empty_lines": true + }, + "no_unnecessary_double_quotes": { + "level": "ignore" + }, + "no_unnecessary_fat_arrows": { + "level": "warn" + }, + "non_empty_constructor_needs_parens": { + "level": "ignore" + }, + "prefer_english_operator": { + "level": "ignore", + "doubleNotLevel": "ignore" + }, + "space_operators": { + "level": "ignore" + }, + "spacing_after_comma": { + "level": "ignore" + }, + "transform_messes_up_line_numbers": { + "level": "warn" + } +} diff --git a/package.json b/package.json index c94eb36..5e89ed7 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,13 @@ "devDependencies": { "babel-cli": "^6.24.1", "babel-preset-es2017-node7": "^0.5.2", + "coffeelint": "^1.16.0", + "coffeelint-config-groupon": "^4.1.0", + "coffeelint-forbidden-keywords": "~0.1.1", + "coffeelint-no-mocha-only": "^1.0.0", + "coffeelint-use-strict": "^1.0.0", + "coffeescope2": "~0.4.2", + "dummy-transform": "file:./util/dummy-transform", "eslint": "^3.19.0", "eslint-config-airbnb": "^15.0.1", "eslint-plugin-import": "^2.2.0", diff --git a/util/dummy-transform/index.js b/util/dummy-transform/index.js new file mode 100644 index 0000000..5eaf5f6 --- /dev/null +++ b/util/dummy-transform/index.js @@ -0,0 +1,5 @@ +function transform(code) { + return code; +} + +module.exports = { transform }; diff --git a/util/dummy-transform/package.json b/util/dummy-transform/package.json new file mode 100644 index 0000000..f8f1830 --- /dev/null +++ b/util/dummy-transform/package.json @@ -0,0 +1,6 @@ +{ + "name": "dummy-transform", + "version": "1.0.0", + "main": "index.js", + "license": "MIT" +}