UNPKG

3.24 kBJavaScriptView Raw
1'use strict';
2module.exports = {
3 // Repeated here from eslint-config-xo in case some plugins set something different
4 parserOptions: {
5 ecmaVersion: 2018,
6 sourceType: 'module',
7 ecmaFeatures: {
8 jsx: true,
9 experimentalObjectRestSpread: true
10 }
11 },
12 // -- end repeat
13 plugins: [
14 'no-use-extend-native',
15 'ava',
16 'unicorn',
17 'promise',
18 'import',
19 'node'
20 ],
21 extends: [
22 'plugin:ava/recommended',
23 'plugin:unicorn/recommended'
24 ],
25 settings: {
26 'import/core-modules': [
27 'electron',
28 'atom'
29 ]
30 },
31 rules: {
32 'no-use-extend-native/no-use-extend-native': 'error',
33 'promise/param-names': 'error',
34 'promise/no-return-wrap': ['error', {allowReject: true}],
35 'promise/no-return-in-finally': 'error',
36 'import/default': 'error',
37 'import/export': 'error',
38 'import/extensions': ['error', {
39 js: 'never',
40 json: 'never',
41 jsx: 'never'
42 }],
43 'import/first': 'error',
44 'import/named': 'error',
45 'import/namespace': ['error', {allowComputed: true}],
46 'import/no-absolute-path': 'error',
47 'import/no-webpack-loader-syntax': 'error',
48 'import/newline-after-import': 'error',
49 'import/no-amd': 'error',
50 'import/no-duplicates': 'error',
51 // Enable this sometime in the future when Node.js has ES2015 module support
52 // 'import/unambiguous': 'error',
53 // enable this sometime in the future when Node.js has ES2015 module support
54 // 'import/no-commonjs': 'error',
55 // Looks useful, but too unstable at the moment
56 // 'import/no-deprecated': 'error',
57 'import/no-extraneous-dependencies': 'error',
58 'import/no-mutable-exports': 'error',
59 'import/no-named-as-default-member': 'error',
60 'import/no-named-as-default': 'error',
61 'import/no-unresolved': ['error', {commonjs: true}],
62 'import/order': 'error',
63 'import/prefer-default-export': 'error',
64 'import/no-unassigned-import': ['error', {
65 allow: ['babel-polyfill', '@babel/polyfill', 'babel-register', '@babel/register']
66 }],
67 // Redundant with import/no-extraneous-dependencies
68 // 'node/no-extraneous-import': 'error',
69 // 'node/no-extraneous-require': 'error',
70 // Redundant with import/no-unresolved
71 // 'node/no-missing-import': 'error',
72 // 'node/no-missing-require': 'error',
73 'node/no-unpublished-bin': 'error',
74 // Disabled because they're too annoying, see:
75 // https://github.com/mysticatea/eslint-plugin-node/issues/105
76 // 'node/no-unpublished-import': ['error', {allowModules: ['electron', 'atom']}],
77 // 'node/no-unpublished-require': ['error', {allowModules: ['electron', 'atom']}],
78 // Disabled as the rule doesn't allow to exclude compiled sources
79 // 'node/no-unsupported-features': 'error',
80 'node/process-exit-as-throw': 'error',
81 // Disabled as the rule doesn't exclude scripts executed with `node` but not referenced in "bin". See https://github.com/mysticatea/eslint-plugin-node/issues/96
82 // 'node/shebang': 'error',
83 'node/no-deprecated-api': 'error',
84 // Disabled because it causes too much churn and will be moot when we switch to ES2015 modules
85 // 'node/exports-style': ['error', 'module.exports'],
86 // Disabled by default (overrides `plugin:unicorn/recommended`), will be enabled if supported by the Node.js version
87 'unicorn/prefer-spread': 'off',
88 'unicorn/no-new-buffer': 'off'
89 }
90};