From eb720f20ff3f49f58ee35b758f4783a3d1e858b2 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 8 May 2020 19:19:14 +0300 Subject: [PATCH] Minor lint tweaks and rules cleanup --- .eslintrc.json | 2 -- build/.eslintrc.json | 1 - build/change-version.js | 4 ++-- js/src/dropdown.js | 1 - js/src/modal.js | 1 - js/src/tools/sanitizer.js | 4 ++-- js/src/util.js | 2 +- js/tests/karma.conf.js | 1 - js/tests/unit/modal.js | 1 - js/tests/unit/toast.js | 1 - js/tests/unit/util.js | 1 - package.json | 4 ++-- site/docs/4.4/assets/js/src/application.js | 2 +- site/docs/4.4/assets/js/src/ie-emulation-modes-warning.js | 2 +- 14 files changed, 9 insertions(+), 18 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index e97ed0b0c6..78963350af 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -102,7 +102,6 @@ "no-shadow": "off", "no-shadow-restricted-names": "error", "no-undef-init": "error", - "no-undefined": "error", "no-use-before-define": "off", // Node.js and CommonJS @@ -112,7 +111,6 @@ "no-mixed-requires": "error", "no-new-require": "error", "no-path-concat": "error", - "no-process-env": "error", "no-process-exit": "error", "no-restricted-modules": "error", "no-sync": "error", diff --git a/build/.eslintrc.json b/build/.eslintrc.json index 76e7f37b63..e406f9f69d 100644 --- a/build/.eslintrc.json +++ b/build/.eslintrc.json @@ -12,7 +12,6 @@ "func-style": "off", "no-console": "off", "no-magic-numbers": "off", - "no-process-env": "off", "no-process-exit": "off", "no-sync": "off", "spaced-comment": "off" diff --git a/build/change-version.js b/build/change-version.js index 509cd5ff9c..ec3c77857a 100755 --- a/build/change-version.js +++ b/build/change-version.js @@ -17,11 +17,11 @@ sh.config.fatal = true // Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37 function regExpQuote(string) { - return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&') + return string.replace(/[$()*+.?[\\\]^{|}-]/g, '\\$&') } function regExpQuoteReplacement(string) { - return string.replace(/[$]/g, '$$') + return string.replace(/\$/g, '$$') } const DRY_RUN = false diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 767fa52077..d32fc74af3 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -531,5 +531,4 @@ $.fn[NAME].noConflict = () => { return Dropdown._jQueryInterface } - export default Dropdown diff --git a/js/src/modal.js b/js/src/modal.js index 6b80bb2f0d..5dc7cd3938 100644 --- a/js/src/modal.js +++ b/js/src/modal.js @@ -179,7 +179,6 @@ class Modal { $(this._element).off(EVENT_CLICK_DISMISS) $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS) - if (transition) { const transitionDuration = Util.getTransitionDurationFromElement(this._element) diff --git a/js/src/tools/sanitizer.js b/js/src/tools/sanitizer.js index f108c66d5a..0c3d4813b9 100644 --- a/js/src/tools/sanitizer.js +++ b/js/src/tools/sanitizer.js @@ -57,14 +57,14 @@ export const DefaultWhitelist = { * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ -const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi +const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi /** * A pattern that matches safe data URLs. Only matches image, video and audio types. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ -const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i +const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i function allowedAttribute(attr, allowedAttributeList) { const attrName = attr.nodeName.toLowerCase() diff --git a/js/src/util.js b/js/src/util.js index 802e574e51..c8168c4758 100644 --- a/js/src/util.js +++ b/js/src/util.js @@ -34,7 +34,7 @@ function getSpecialTransitionEndEvent() { if ($(event.target).is(this)) { return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params } - return undefined // eslint-disable-line no-undefined + return undefined } } } diff --git a/js/tests/karma.conf.js b/js/tests/karma.conf.js index aacafe3d3b..fc3c7703b4 100644 --- a/js/tests/karma.conf.js +++ b/js/tests/karma.conf.js @@ -1,5 +1,4 @@ /* eslint-env node */ -/* eslint no-process-env: 0 */ const path = require('path') const ip = require('ip') diff --git a/js/tests/unit/modal.js b/js/tests/unit/modal.js index 95c3340328..71229a79cf 100644 --- a/js/tests/unit/modal.js +++ b/js/tests/unit/modal.js @@ -826,7 +826,6 @@ $(function () { '' ].join('')).appendTo('#qunit-fixture') - $modal.on('shown.bs.modal', function () { assert.strictEqual($modal.scrollTop(), 0) done() diff --git a/js/tests/unit/toast.js b/js/tests/unit/toast.js index 3b5da05f3f..89bcaf9b64 100644 --- a/js/tests/unit/toast.js +++ b/js/tests/unit/toast.js @@ -208,7 +208,6 @@ $(function () { .bootstrapToast('show') }) - QUnit.test('should close toast when close element with data-dismiss attribute is set', function (assert) { assert.expect(2) var done = assert.async() diff --git a/js/tests/unit/util.js b/js/tests/unit/util.js index 20c1e6ba38..887bad3f85 100644 --- a/js/tests/unit/util.js +++ b/js/tests/unit/util.js @@ -63,7 +63,6 @@ $(function () { Util.typeCheckConfig(namePlugin, config, defaultType) - // eslint-disable-next-line config.toggle = undefined Util.typeCheckConfig(namePlugin, config, defaultType) diff --git a/package.json b/package.json index 0e04e8a866..459a7affba 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ "js-compile-plugins": "node build/build-plugins.js", "js-compile-plugins-coverage": "cross-env NODE_ENV=test node build/build-plugins.js", "js-lint": "npm-run-all --continue-on-error --parallel js-lint-*", - "js-lint-main": "eslint --cache --cache-location .cache/.eslintcache js/src js/tests build/", - "js-lint-docs": "eslint --cache --cache-location .cache/.eslintcache site/", + "js-lint-main": "eslint --report-unused-disable-directives --cache --cache-location .cache/.eslintcache js/src js/tests build/", + "js-lint-docs": "eslint --report-unused-disable-directives --cache --cache-location .cache/.eslintcache site/", "js-minify": "npm-run-all --parallel js-minify-main js-minify-docs", "js-minify-main": "npm-run-all js-minify-standalone js-minify-bundle", "js-minify-standalone": "terser --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js", diff --git a/site/docs/4.4/assets/js/src/application.js b/site/docs/4.4/assets/js/src/application.js index eb22ea6ea1..0a870261a2 100644 --- a/site/docs/4.4/assets/js/src/application.js +++ b/site/docs/4.4/assets/js/src/application.js @@ -90,7 +90,7 @@ }) clipboard.on('error', function (e) { - var modifierKey = /Mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-' + var modifierKey = /mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-' var fallbackMsg = 'Press ' + modifierKey + 'C to copy' $(e.trigger) diff --git a/site/docs/4.4/assets/js/src/ie-emulation-modes-warning.js b/site/docs/4.4/assets/js/src/ie-emulation-modes-warning.js index 610128e273..6e6ed9c273 100644 --- a/site/docs/4.4/assets/js/src/ie-emulation-modes-warning.js +++ b/site/docs/4.4/assets/js/src/ie-emulation-modes-warning.js @@ -7,7 +7,7 @@ 'use strict' function emulatedIEMajorVersion() { - var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent) + var groups = /MSIE ([\d.]+)/.exec(window.navigator.userAgent) if (groups === null) { return null }