diff --git a/.circleci/config.yml b/.circleci/config.yml index 2d33c17..e0c4540 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,6 +77,10 @@ jobs: name: ESLint command: pnpm eslint + - run: + name: Verify ESLint Autogen + command: bundle exec exe/eslint_autogen + - run: name: Vitest command: pnpm vitest @@ -89,6 +93,10 @@ jobs: name: Stylelint command: pnpm stylelint + - run: + name: Verify Stylelint Autogen + command: bundle exec exe/stylelint_autogen + - run: name: Rubocop command: bundle exec rubocop diff --git a/.eslint_todo.ts b/.eslint_todo.ts index 22ee2a4..42c09a2 100644 --- a/.eslint_todo.ts +++ b/.eslint_todo.ts @@ -1,17 +1,20 @@ // This configuration was generated by `exe/eslint_autogen` -// on 2025-12-16 22:19:02 UTC. +// on 2026-02-13 00:31:54 UTC. // The point is for the user to remove these configuration records // one by one as the offenses are removed from the code base. import type {Linter} from "eslint"; -const eslintTodo: Linter.Config[] = [ +const config: Linter.Config[] = [ + // Offense count: 1 { - files: ["spec/javascript/controllers/file_upload_controller_spec.ts"], + files: [ + "spec/javascript/controllers/file_upload_controller_spec.ts", + ], rules: { "@typescript-eslint/consistent-type-assertions": "off", }, }, ]; -export default eslintTodo; +export default config; diff --git a/.stylelint_todo.yml b/.stylelint_todo.yml index eb69bd2..2e7fb40 100644 --- a/.stylelint_todo.yml +++ b/.stylelint_todo.yml @@ -1,11 +1,11 @@ # This configuration was generated by `exe/stylelint_autogen` -# on 2026-02-08 01:36:05 UTC. +# on 2026-02-13 00:26:45 UTC. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. overrides: - # Offense count: 119 + # Offense count: 117 - rules: { 'alpha-value-notation': null } files: - app/assets/stylesheets/application.css @@ -17,7 +17,7 @@ overrides: - app/assets/stylesheets/pricing.css - app/assets/stylesheets/welcome.css - # Offense count: 119 + # Offense count: 117 - rules: { 'color-function-alias-notation': null } files: - app/assets/stylesheets/application.css @@ -29,7 +29,7 @@ overrides: - app/assets/stylesheets/pricing.css - app/assets/stylesheets/welcome.css - # Offense count: 119 + # Offense count: 117 - rules: { 'color-function-notation': null } files: - app/assets/stylesheets/application.css @@ -102,7 +102,7 @@ overrides: files: - app/assets/stylesheets/pricing.css - # Offense count: 455 + # Offense count: 461 - rules: { 'order/properties-order': null } files: - app/assets/stylesheets/application.css @@ -114,7 +114,7 @@ overrides: - app/assets/stylesheets/pricing.css - app/assets/stylesheets/welcome.css - # Offense count: 610 + # Offense count: 623 - rules: { 'plugin/selector-bem-pattern': null } files: - app/assets/stylesheets/application.css @@ -126,7 +126,7 @@ overrides: - app/assets/stylesheets/pricing.css - app/assets/stylesheets/welcome.css - # Offense count: 14 + # Offense count: 10 - rules: { 'rule-empty-line-before': null } files: - app/assets/stylesheets/application.css @@ -147,7 +147,7 @@ overrides: - app/assets/stylesheets/pricing.css - app/assets/stylesheets/welcome.css - # Offense count: 2 + # Offense count: 1 - rules: { 'value-keyword-case': null } files: - app/assets/stylesheets/flash.css diff --git a/exe/eslint_autogen b/exe/eslint_autogen index eef52ed..eecee6e 100755 --- a/exe/eslint_autogen +++ b/exe/eslint_autogen @@ -2,6 +2,7 @@ # frozen_string_literal: true require "active_support/all" +require "stringio" TODO_FILE_PATH = "./.eslint_todo.ts" HEADING = <<~COMMENTS.freeze @@ -12,7 +13,7 @@ HEADING = <<~COMMENTS.freeze COMMENTS File.write(TODO_FILE_PATH, "export default []") -json = `pnpm eslint --format json` +json = `pnpm --silent eslint --format json` results = JSON.parse(json) by_rule = @@ -29,7 +30,9 @@ by_rule = output = StringIO.new output.puts(HEADING) output.puts -output.puts("export default [") +output.puts("import type {Linter} from \"eslint\";") +output.puts +output.puts("const config: Linter.Config[] = [") by_rule.sort.each do |rule, file_paths| output.puts(" // Offense count: #{file_paths.length}") @@ -49,5 +52,7 @@ by_rule.sort.each do |rule, file_paths| end output.puts("];") +output.puts +output.puts("export default config;") File.write(TODO_FILE_PATH, output.string)