Chore: MEGA - Make Eslint Great Again 💅 (#26094)

* Fix lint error in types.ts

* Bump eslint and its deps to latest

* Add eslintignore and remove not needed eslintrcs

* Change webpack configs eslint config

* Update package.jsons and removed unused eslintrc files

* Chore yarn lint --fix 💅

* Add devenv to eslintignore

* Remove eslint disable comments for rules that are not used

* Remaining eslint fixes 💅

* Bump grafana/eslint-config 💥

* Modify package.json

No need for duplicate checks.

* Modify eslintignore to ignore data and dist folders

* Revert removing .eslintrc to make sure not to use certain packages

* Modify package.json to remove not needed command

* Use gitignore for ignoring paths
This commit is contained in:
Zoltán Bedi
2020-08-11 17:52:44 +02:00
committed by GitHub
parent e4da0fcb5e
commit ae30482465
94 changed files with 873 additions and 892 deletions

View File

@ -1,12 +1,6 @@
module.exports = function(grunt) {
"use strict";
'use strict';
// Concat and Minify the src directory into dist
grunt.registerTask('build', [
'clean:release',
'clean:build',
'exec:webpack',
]);
grunt.registerTask('build', ['clean:release', 'clean:build', 'exec:webpack']);
};

View File

@ -19,8 +19,7 @@ module.exports = function(grunt) {
// prettier-ignore
grunt.registerTask('eslint', [
'newer:exec:eslintPackages',
'newer:exec:eslintRoot'
'newer:exec:eslint'
]);
// prettier-ignore

View File

@ -5,7 +5,6 @@ module.exports = function(config) {
release: ['<%= destDir %>', '<%= tempDir %>', '<%= genDir %>'],
build: ['<%= srcDir %>/build'],
temp: ['<%= tempDir %>'],
packaging: [
],
packaging: [],
};
};

View File

@ -4,9 +4,10 @@ module.exports = function(config) {
var task = {
release: {
options: {
archive: '<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>.tar.gz'
archive:
'<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>.tar.gz',
},
files : [
files: [
{
expand: true,
cwd: '<%= tempDir %>',
@ -17,13 +18,14 @@ module.exports = function(config) {
expand: true,
src: ['LICENSE', 'README.md', 'NOTICE.md'],
dest: '<%= pkg.name %>-<%= pkg.version %>/',
}
]
}
},
],
},
};
if (config.platform === 'windows') {
task.release.options.archive = '<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %>.zip';
task.release.options.archive =
'<%= destDir %>/<%= pkg.name %><%= enterprise ? "-enterprise" : "" %>-<%= pkg.version %>.<%= platform %>-<%= arch %>.zip';
}
return task;

View File

@ -2,10 +2,7 @@ module.exports = function(config, grunt) {
'use strict';
return {
eslintPackages: {
command: 'yarn packages:lint',
},
eslintRoot: {
eslint: {
command: 'yarn lint',
},
typecheckPackages: {

View File

@ -4,10 +4,6 @@ module.exports = function(config) {
options: {
configFile: 'public/sass/.sass-lint.yml',
},
src: [
'public/sass/**/*.scss',
'packages/**/*.scss',
'!**/node_modules/**/*.scss'
],
src: ['public/sass/**/*.scss', 'packages/**/*.scss', '!**/node_modules/**/*.scss'],
};
};

View File

@ -8,6 +8,6 @@ module.exports = function() {
stats: false,
},
dev: dev,
prod: prod
prod: prod,
};
};

View File

@ -1,21 +1,13 @@
var path = require('path');
module.exports = function(grunt) {
"use strict";
'use strict';
// build then zip
grunt.registerTask('release', [
'build',
'build-post-process',
'compress:release'
]);
grunt.registerTask('release', ['build', 'build-post-process', 'compress:release']);
// package into archives
grunt.registerTask('package', [
'clean:temp',
'build-post-process',
'compress:release'
]);
grunt.registerTask('package', ['clean:temp', 'build-post-process', 'compress:release']);
grunt.registerTask('build-post-process', function() {
grunt.config('copy.public_to_temp', {
@ -28,14 +20,14 @@ module.exports = function(grunt) {
cwd: 'bin/<%= platform %>-<%= arch %><%= libc ? "-" + libc : "" %>',
expand: true,
src: ['*'],
options: { mode: true},
dest: '<%= tempDir %>/bin/'
options: { mode: true },
dest: '<%= tempDir %>/bin/',
});
grunt.config('copy.backend_files', {
expand: true,
src: ['conf/**', 'tools/**', 'scripts/*'],
options: { mode: true},
dest: '<%= tempDir %>'
options: { mode: true },
dest: '<%= tempDir %>',
});
grunt.task.run('copy:public_to_temp');

View File

@ -1,8 +1,8 @@
module.exports = function(grunt) {
"use strict";
'use strict';
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
}
function extractColour(line) {
@ -12,8 +12,8 @@ module.exports = function(grunt) {
}
function extractVariable(line) {
var matches = line.match(/(\$[0-9a-zA-Z_-]+)\s*(!default|!default;)?/)
return matches ? matches[1] : matches
var matches = line.match(/(\$[0-9a-zA-Z_-]+)\s*(!default|!default;)?/);
return matches ? matches[1] : matches;
}
function readVars(file, obj) {
@ -33,7 +33,8 @@ module.exports = function(grunt) {
grunt.registerTask('styleguide', function() {
var data = {
dark: {}, light: {}
dark: {},
light: {},
};
readVars('public/sass/_variables.dark.scss', data.dark);
@ -41,7 +42,5 @@ module.exports = function(grunt) {
var styleGuideJson = grunt.config().srcDir + '/build/styleguide.json';
grunt.file.write(styleGuideJson, JSON.stringify(data, null, 4));
});
};

View File

@ -2,5 +2,7 @@ const loaderUtils = require('loader-utils');
module.exports = function blobUrl(source) {
const { type } = loaderUtils.getOptions(this) || {};
return `module.exports = URL.createObjectURL(new Blob([${JSON.stringify(source)}]${type ? `, { type: ${JSON.stringify(type)} }` : ''}));`;
return `module.exports = URL.createObjectURL(new Blob([${JSON.stringify(source)}]${
type ? `, { type: ${JSON.stringify(type)} }` : ''
}));`;
};

View File

@ -40,7 +40,7 @@ module.exports.pitch = function pitch(remainingRequest) {
// https://github.com/webpack/webpack/blob/master/lib/WebpackOptionsApply.js
new WebWorkerTemplatePlugin(outputOptions),
new LoaderTargetPlugin('webworker'),
...((this.target === 'web') || (this.target === 'webworker') ? [] : [new NodeTargetPlugin()]),
...(this.target === 'web' || this.target === 'webworker' ? [] : [new NodeTargetPlugin()]),
// https://github.com/webpack-contrib/worker-loader/issues/95#issuecomment-352856617
...(compilerOptions.externals ? [new ExternalsPlugin(compilerOptions.externals)] : []),
@ -52,19 +52,29 @@ module.exports.pitch = function pitch(remainingRequest) {
const subCache = `subcache ${__dirname} ${remainingRequest}`;
childCompiler.plugin('compilation', (compilation) => {
if (!compilation.cache) { return; }
if (!(subCache in compilation.cache)) { Object.assign(compilation.cache, { [subCache]: {} }); }
childCompiler.plugin('compilation', compilation => {
if (!compilation.cache) {
return;
}
if (!(subCache in compilation.cache)) {
Object.assign(compilation.cache, { [subCache]: {} });
}
Object.assign(compilation, { cache: compilation.cache[subCache] });
});
const callback = this.async();
childCompiler.runAsChild((error, entries, compilation) => {
if (error) { return callback(error); }
if (entries.length === 0) { return callback(null, null); }
if (error) {
return callback(error);
}
if (entries.length === 0) {
return callback(null, null);
}
const mainFilename = entries[0].files[0];
if (emit === false) { delete currentCompilation.assets[mainFilename]; }
if (emit === false) {
delete currentCompilation.assets[mainFilename];
}
callback(null, compilation.assets[mainFilename].source(), null, {
[COMPILATION_METADATA]: entries[0].files,
});
@ -72,8 +82,12 @@ module.exports.pitch = function pitch(remainingRequest) {
};
function getOutputFilename(options, { target }) {
if (!options) { return { filename: `[hash].${target}.js`, options: undefined }; }
if (typeof options === 'string') { return { filename: options, options: undefined }; }
if (!options) {
return { filename: `[hash].${target}.js`, options: undefined };
}
if (typeof options === 'string') {
return { filename: options, options: undefined };
}
if (typeof options === 'object') {
return {
filename: options.filename,

View File

@ -4,6 +4,6 @@ module.exports = () => {
autoprefixer: {},
'postcss-reporter': {},
'postcss-browser-reporter': {},
}
},
};
};

View File

@ -12,7 +12,7 @@ module.exports = function(options) {
options: {
importLoaders: 2,
url: options.preserveUrl,
sourceMap: options.sourceMap
sourceMap: options.sourceMap,
},
},
{
@ -25,7 +25,7 @@ module.exports = function(options) {
{
loader: 'sass-loader',
options: {
sourceMap: options.sourceMap
sourceMap: options.sourceMap,
},
},
],

View File

@ -89,15 +89,7 @@ module.exports = (env = {}) =>
: new ForkTsCheckerWebpackPlugin({
eslint: {
enabled: true,
files: [
'public/app/**/*.{ts,tsx}',
// this can't be written like this packages/**/src/**/*.ts because it throws an error
'packages/grafana-ui/src/**/*.{ts,tsx}',
'packages/grafana-data/src/**/*.{ts,tsx}',
'packages/grafana-runtime/src/**/*.{ts,tsx}',
'packages/grafana-e2e-selectors/src/**/*.{ts,tsx}',
'packages/jaeger-ui-components/src/**/*.{ts,tsx}',
],
files: ['public/app/**/*.{ts,tsx}', 'packages/*/src/**/*.{ts,tsx}'],
options: {
cache: true,
},

View File

@ -89,15 +89,7 @@ module.exports = merge(common, {
new ForkTsCheckerWebpackPlugin({
eslint: {
enabled: true,
files: [
'public/app/**/*.{ts,tsx}',
// this can't be written like this packages/**/src/**/*.ts because it throws an error
'packages/grafana-ui/src/**/*.{ts,tsx}',
'packages/grafana-data/src/**/*.{ts,tsx}',
'packages/grafana-runtime/src/**/*.{ts,tsx}',
'packages/grafana-e2e-selectors/src/**/*.{ts,tsx}',
'packages/jaeger-ui-components/src/**/*.{ts,tsx}',
],
files: ['public/app/**/*.{ts,tsx}', 'packages/*/src/**/*.{ts,tsx}'],
},
typescript: {
mode: 'write-references',