--- /dev/null
+task "eslint" => "eslint:check"
+
+namespace "eslint" do
+ def yarn_path
+ Rails.root.join("bin", "yarn").to_s
+ end
+
+ def config_file
+ Rails.root.join("config", "eslint.json").to_s
+ end
+
+ def js_files
+ Rails.application.assets.each_file.select do |file|
+ file.ends_with?(".js") && !file.match?(%r{/(gems|vendor|i18n)/})
+ end
+ end
+
+ task :check => :environment do
+ system(yarn_path, "run", "eslint", "-c", config_file, *js_files) || abort
+ end
+
+ task :fix => :environment do
+ system(yarn_path, "run", "eslint", "-c", config_file, "--fix", *js_files) || abort
+ end
+end