diff options
author | Marco Ambrosini <marcoambrosini@pm.me> | 2019-09-13 19:28:44 +0300 |
---|---|---|
committer | Marco Ambrosini <marcoambrosini@pm.me> | 2019-10-09 11:48:26 +0300 |
commit | 5e9c3400c758499d6d0b796ad288ede528835fa9 (patch) | |
tree | 1eac8577b0a486aa6b9ba0cb24caef83c9b769df /.eslintrc.js | |
parent | 88d7d7820e5ae8f4a3d897605124ad7755926494 (diff) |
Create Message component
Signed-off-by: Marco Ambrosini <marcoambrosini@pm.me>
Diffstat (limited to '.eslintrc.js')
-rw-r--r-- | .eslintrc.js | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..02f83b17c --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,99 @@ +module.exports = { + root: true, + env: { + browser: true, + es6: true, + node: true, + jest: true + }, + globals: { + t: true, + n: true, + OC: true, + OCA: true, + Vue: true, + VueRouter: true + }, + parserOptions: { + parser: 'babel-eslint', + ecmaVersion: 6 + }, + extends: [ + 'eslint:recommended', + 'plugin:import/errors', + 'plugin:import/warnings', + 'plugin:node/recommended', + 'plugin:vue/essential', + 'plugin:vue/recommended', + 'plugin:nextcloud/recommended', + 'standard' + ], + settings: { + 'import/resolver': { + webpack: { + config: 'webpack.common.js' + }, + node: { + paths: ['src'], + extensions: ['.js', '.vue'] + } + } + }, + plugins: ['vue', 'node'], + rules: { + // space before function () + 'space-before-function-paren': ['error', 'never'], + // curly braces always space + 'object-curly-spacing': ['error', 'always'], + // stay consistent with array brackets + 'array-bracket-newline': ['error', 'consistent'], + // 1tbs brace style + 'brace-style': 'error', + // tabs only + indent: ['error', 'tab'], + 'no-tabs': ['off'], + 'vue/html-indent': ['error', 'tab'], + // only debug console + 'no-console': ['error', { allow: ['error', 'warn', 'info', 'debug'] }], + // classes blocks + 'padded-blocks': ['error', { classes: 'always' }], + // always have the operator in front + 'operator-linebreak': ['error', 'before'], + // ternary on multiline + 'multiline-ternary': ['error', 'always-multiline'], + // force proper JSDocs + 'valid-jsdoc': [2, { + 'prefer': { + 'return': 'returns' + }, + 'requireReturn': false, + 'requireReturnDescription': false + }], + // es6 import/export and require + 'node/no-unpublished-require': ['off'], + 'node/no-unsupported-features/es-syntax': ['off'], + // PascalCase components names for vuejs + // https://vuejs.org/v2/style-guide/#Single-file-component-filename-casing-strongly-recommended + 'vue/component-name-in-template-casing': ['error', 'PascalCase'], + // force name + 'vue/match-component-file-name': ['error', { + 'extensions': ['jsx', 'vue', 'js'], + 'shouldMatchCase': true + }], + // space before self-closing elements + 'vue/html-closing-bracket-spacing': 'error', + // no ending html tag on a new line + 'vue/html-closing-bracket-newline': ['error', { multiline: 'never' }], + // code spacing with attributes + 'vue/max-attributes-per-line': [ + 'error', + { + singleline: 3, + multiline: { + max: 3, + allowFirstLine: true + } + } + ] + } +} |