Skip to content

Commit

Permalink
lint based on configArray item.files
Browse files Browse the repository at this point in the history
Signed-off-by: Charlike Mike Reagent <[email protected]>
  • Loading branch information
tunnckoCore committed Mar 8, 2020
1 parent 9b8053c commit 578fdf3
Show file tree
Hide file tree
Showing 6 changed files with 412 additions and 135 deletions.
83 changes: 12 additions & 71 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,52 +1,23 @@
'use strict';

// module.exports = {
// name: "name",
// files: ["*.js"],
// ignores: ["*.test.js"],
// settings: {},
// languageOptions: {
// ecmaVersion: 2020,
// sourceType: "module",
// globals: {},
// parser: object || "string",
// parserOptions: {},
// linterOptions: {
// reportUnusedDisableDirectives: "string"
// }
// }
// processor: object || "string",
// plugins: {}
// rules: {}
// };

const {
DEFAULT_FILES,
DEFAULT_IGNORE,
} = require('./packages/eslint/src/constants');

module.exports = [
/*
gets converted to
{
plugins: {
'eslint:recommended': require('somehow-load-eslint-internal-rules')
}
}
*/
// 'eslint:recommended',
{
name: 'loading-babel-eslint-parser-through-custom-plugin',
plugins: {
'custom-plugin': require('./custom-eslint-plugin'),
},
},

// consider linting src/index.jsx - both configs should apply for it
// so, what will the ConfigArray#getConfig(filename) return??
// example using the custom loaded parser
{
languageOptions: {
// directly requiring the parser
// parser: require('babel-eslint'),

// or: through the loaded plugin
parser: 'custom-plugin/eslint-esnext',
},
},
{
files: '**/*.{js,jsx}',
files: 'packages/*/src/**/*.js',
plugins: {
unicorn: require('eslint-plugin-unicorn'),
},
Expand All @@ -57,7 +28,7 @@ module.exports = [
},
},
{
files: '**/*.jsx',
files: '**/__tests__/**/*.{js,jsx}',
plugins: {
react: require('eslint-plugin-react'),
},
Expand All @@ -66,34 +37,4 @@ module.exports = [
'global-require': 'error',
},
},

{
name: 'some-tunnckocore-config',
files: DEFAULT_FILES,
ignores: DEFAULT_IGNORE,
languageOptions: {
globals: {},
// directly requiring the parser
// parser: require('babel-eslint'),

// or: through the loaded plugin
parser: 'custom-plugin/eslint-esnext',

// or require-ing of the plugin directly
// parser: require('./custom-eslint-plugin').parsers['eslint-esnext'],
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
ecmaFeatures: {
generators: false,
objectLiteralDuplicateProperties: false,
},
},
},
plugins: {},
rules: {
semi: ['error', 'always'],
'global-require': ['error', 'always'],
},
},
];
99 changes: 99 additions & 0 deletions origin-eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
'use strict';

// module.exports = {
// name: "name",
// files: ["*.js"],
// ignores: ["*.test.js"],
// settings: {},
// languageOptions: {
// ecmaVersion: 2020,
// sourceType: "module",
// globals: {},
// parser: object || "string",
// parserOptions: {},
// linterOptions: {
// reportUnusedDisableDirectives: "string"
// }
// }
// processor: object || "string",
// plugins: {}
// rules: {}
// };

const {
DEFAULT_FILES,
DEFAULT_IGNORE,
} = require('./packages/eslint/src/constants');

module.exports = [
/*
gets converted to
{
plugins: {
'eslint:recommended': require('somehow-load-eslint-internal-rules')
}
}
*/
// 'eslint:recommended',
{
name: 'loading-babel-eslint-parser-through-custom-plugin',
plugins: {
'custom-plugin': require('./custom-eslint-plugin'),
},
},

// consider linting src/index.jsx - both configs should apply for it
// so, what will the ConfigArray#getConfig(filename) return??
{
files: '**/*.{js,jsx}',
plugins: {
unicorn: require('eslint-plugin-unicorn'),
},
rules: {
'unicorn/no-process-exit': ['error'],
'unicorn/consistent-function-scoping': 'error',
semi: 'error',
},
},
{
files: '**/*.jsx',
plugins: {
react: require('eslint-plugin-react'),
},
rules: {
'react/jsx-uses-react': 'error',
'global-require': 'error',
},
},

{
name: 'some-tunnckocore-config',
files: DEFAULT_FILES,
ignores: DEFAULT_IGNORE,
languageOptions: {
globals: {},
// directly requiring the parser
// parser: require('babel-eslint'),

// or: through the loaded plugin
parser: 'custom-plugin/eslint-esnext',

// or require-ing of the plugin directly
// parser: require('./custom-eslint-plugin').parsers['eslint-esnext'],
parserOptions: {
ecmaVersion: 2020,
sourceType: 'module',
ecmaFeatures: {
generators: false,
objectLiteralDuplicateProperties: false,
},
},
},
plugins: {},
rules: {
semi: ['error', 'always'],
'global-require': ['error', 'always'],
},
},
];
2 changes: 1 addition & 1 deletion packages/eslint/__tests__/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
const mod = require('../src/index');

test('todo test for mod', () => {
// const foo = 123;x
const foo = 123;
expect(typeof mod).toStrictEqual('object');
expect(typeof mod.helaCommand).toStrictEqual('function');
});
Loading

0 comments on commit 578fdf3

Please sign in to comment.