Introduce eslint-plugin-jquery (#19690)
Introduce the plugin that allows us to gradually forbid jQuery code. I've enabled all rules that already pass. Next step will be to go through each rule and fix the issues by using native DOM equivalents, which I think can be done in separate PRs, but if prefered I could also start here.
This commit is contained in:
		
					parent
					
						
							
								368baf9e77
							
						
					
				
			
			
				commit
				
					
						e45738e3c9
					
				
			
		
					 3 changed files with 68 additions and 0 deletions
				
			
		
							
								
								
									
										50
									
								
								.eslintrc
									
										
									
									
									
								
							
							
						
						
									
										50
									
								
								.eslintrc
									
										
									
									
									
								
							| 
						 | 
					@ -13,6 +13,7 @@ plugins:
 | 
				
			||||||
  - eslint-plugin-import
 | 
					  - eslint-plugin-import
 | 
				
			||||||
  - eslint-plugin-vue
 | 
					  - eslint-plugin-vue
 | 
				
			||||||
  - eslint-plugin-html
 | 
					  - eslint-plugin-html
 | 
				
			||||||
 | 
					  - eslint-plugin-jquery
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extends:
 | 
					extends:
 | 
				
			||||||
  - plugin:vue/recommended
 | 
					  - plugin:vue/recommended
 | 
				
			||||||
| 
						 | 
					@ -140,6 +141,55 @@ rules:
 | 
				
			||||||
  import/unambiguous: [0]
 | 
					  import/unambiguous: [0]
 | 
				
			||||||
  indent: [2, 2, {SwitchCase: 1}]
 | 
					  indent: [2, 2, {SwitchCase: 1}]
 | 
				
			||||||
  init-declarations: [0]
 | 
					  init-declarations: [0]
 | 
				
			||||||
 | 
					  jquery/no-ajax-events: [2]
 | 
				
			||||||
 | 
					  jquery/no-ajax: [0]
 | 
				
			||||||
 | 
					  jquery/no-animate: [2]
 | 
				
			||||||
 | 
					  jquery/no-attr: [0]
 | 
				
			||||||
 | 
					  jquery/no-bind: [2]
 | 
				
			||||||
 | 
					  jquery/no-class: [0]
 | 
				
			||||||
 | 
					  jquery/no-clone: [2]
 | 
				
			||||||
 | 
					  jquery/no-closest: [0]
 | 
				
			||||||
 | 
					  jquery/no-css: [0]
 | 
				
			||||||
 | 
					  jquery/no-data: [0]
 | 
				
			||||||
 | 
					  jquery/no-deferred: [2]
 | 
				
			||||||
 | 
					  jquery/no-delegate: [2]
 | 
				
			||||||
 | 
					  jquery/no-each: [0]
 | 
				
			||||||
 | 
					  jquery/no-extend: [2]
 | 
				
			||||||
 | 
					  jquery/no-fade: [0]
 | 
				
			||||||
 | 
					  jquery/no-filter: [0]
 | 
				
			||||||
 | 
					  jquery/no-find: [0]
 | 
				
			||||||
 | 
					  jquery/no-global-eval: [2]
 | 
				
			||||||
 | 
					  jquery/no-grep: [2]
 | 
				
			||||||
 | 
					  jquery/no-has: [2]
 | 
				
			||||||
 | 
					  jquery/no-hide: [0]
 | 
				
			||||||
 | 
					  jquery/no-html: [0]
 | 
				
			||||||
 | 
					  jquery/no-in-array: [2]
 | 
				
			||||||
 | 
					  jquery/no-is-array: [2]
 | 
				
			||||||
 | 
					  jquery/no-is-function: [2]
 | 
				
			||||||
 | 
					  jquery/no-is: [0]
 | 
				
			||||||
 | 
					  jquery/no-load: [2]
 | 
				
			||||||
 | 
					  jquery/no-map: [0]
 | 
				
			||||||
 | 
					  jquery/no-merge: [2]
 | 
				
			||||||
 | 
					  jquery/no-param: [2]
 | 
				
			||||||
 | 
					  jquery/no-parent: [0]
 | 
				
			||||||
 | 
					  jquery/no-parents: [0]
 | 
				
			||||||
 | 
					  jquery/no-parse-html: [2]
 | 
				
			||||||
 | 
					  jquery/no-prop: [0]
 | 
				
			||||||
 | 
					  jquery/no-proxy: [2]
 | 
				
			||||||
 | 
					  jquery/no-ready: [0]
 | 
				
			||||||
 | 
					  jquery/no-serialize: [2]
 | 
				
			||||||
 | 
					  jquery/no-show: [0]
 | 
				
			||||||
 | 
					  jquery/no-size: [2]
 | 
				
			||||||
 | 
					  jquery/no-sizzle: [0]
 | 
				
			||||||
 | 
					  jquery/no-slide: [0]
 | 
				
			||||||
 | 
					  jquery/no-submit: [0]
 | 
				
			||||||
 | 
					  jquery/no-text: [0]
 | 
				
			||||||
 | 
					  jquery/no-toggle: [0]
 | 
				
			||||||
 | 
					  jquery/no-trigger: [0]
 | 
				
			||||||
 | 
					  jquery/no-trim: [2]
 | 
				
			||||||
 | 
					  jquery/no-val: [0]
 | 
				
			||||||
 | 
					  jquery/no-when: [2]
 | 
				
			||||||
 | 
					  jquery/no-wrap: [2]
 | 
				
			||||||
  key-spacing: [2]
 | 
					  key-spacing: [2]
 | 
				
			||||||
  keyword-spacing: [2]
 | 
					  keyword-spacing: [2]
 | 
				
			||||||
  line-comment-position: [0]
 | 
					  line-comment-position: [0]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										17
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -48,6 +48,7 @@
 | 
				
			||||||
        "eslint": "8.15.0",
 | 
					        "eslint": "8.15.0",
 | 
				
			||||||
        "eslint-plugin-html": "6.2.0",
 | 
					        "eslint-plugin-html": "6.2.0",
 | 
				
			||||||
        "eslint-plugin-import": "2.26.0",
 | 
					        "eslint-plugin-import": "2.26.0",
 | 
				
			||||||
 | 
					        "eslint-plugin-jquery": "1.5.1",
 | 
				
			||||||
        "eslint-plugin-unicorn": "42.0.0",
 | 
					        "eslint-plugin-unicorn": "42.0.0",
 | 
				
			||||||
        "eslint-plugin-vue": "8.7.1",
 | 
					        "eslint-plugin-vue": "8.7.1",
 | 
				
			||||||
        "jest": "28.1.0",
 | 
					        "jest": "28.1.0",
 | 
				
			||||||
| 
						 | 
					@ -4352,6 +4353,15 @@
 | 
				
			||||||
      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
 | 
					      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/eslint-plugin-jquery": {
 | 
				
			||||||
 | 
					      "version": "1.5.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/eslint-plugin-jquery/-/eslint-plugin-jquery-1.5.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-L7v1eaK5t80C0lvUXPFP9MKnBOqPSKhCOYyzy4LZ0+iK+TJwN8S9gAkzzP1AOhypRIwA88HF6phQ9C7jnOpW8w==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "eslint": ">=5.4.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/eslint-plugin-unicorn": {
 | 
					    "node_modules/eslint-plugin-unicorn": {
 | 
				
			||||||
      "version": "42.0.0",
 | 
					      "version": "42.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
 | 
				
			||||||
| 
						 | 
					@ -13443,6 +13453,13 @@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "eslint-plugin-jquery": {
 | 
				
			||||||
 | 
					      "version": "1.5.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/eslint-plugin-jquery/-/eslint-plugin-jquery-1.5.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-L7v1eaK5t80C0lvUXPFP9MKnBOqPSKhCOYyzy4LZ0+iK+TJwN8S9gAkzzP1AOhypRIwA88HF6phQ9C7jnOpW8w==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {}
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "eslint-plugin-unicorn": {
 | 
					    "eslint-plugin-unicorn": {
 | 
				
			||||||
      "version": "42.0.0",
 | 
					      "version": "42.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,6 +48,7 @@
 | 
				
			||||||
    "eslint": "8.15.0",
 | 
					    "eslint": "8.15.0",
 | 
				
			||||||
    "eslint-plugin-html": "6.2.0",
 | 
					    "eslint-plugin-html": "6.2.0",
 | 
				
			||||||
    "eslint-plugin-import": "2.26.0",
 | 
					    "eslint-plugin-import": "2.26.0",
 | 
				
			||||||
 | 
					    "eslint-plugin-jquery": "1.5.1",
 | 
				
			||||||
    "eslint-plugin-unicorn": "42.0.0",
 | 
					    "eslint-plugin-unicorn": "42.0.0",
 | 
				
			||||||
    "eslint-plugin-vue": "8.7.1",
 | 
					    "eslint-plugin-vue": "8.7.1",
 | 
				
			||||||
    "jest": "28.1.0",
 | 
					    "jest": "28.1.0",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue