]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Tweak and re-organize ESLint config (#38369)
authorXhmikosR <xhmikosr@gmail.com>
Wed, 29 Mar 2023 17:49:30 +0000 (20:49 +0300)
committerGitHub <noreply@github.com>
Wed, 29 Mar 2023 17:49:30 +0000 (13:49 -0400)
* Tweak and re-organize ESLint config

* merge individual configs to the root config
* enable more eslint-plugin-import rules
* lint markdown files

* Lint

65 files changed:
.eslintignore
.eslintrc.json
build/.eslintrc.json [deleted file]
build/banner.js
js/.eslintrc.json [deleted file]
js/src/alert.js
js/src/base-component.js
js/src/button.js
js/src/carousel.js
js/src/collapse.js
js/src/dom/event-handler.js
js/src/dropdown.js
js/src/modal.js
js/src/offcanvas.js
js/src/popover.js
js/src/scrollspy.js
js/src/tab.js
js/src/toast.js
js/src/tooltip.js
js/src/util/backdrop.js
js/src/util/component-functions.js
js/src/util/config.js
js/src/util/scrollbar.js
js/src/util/swipe.js
js/src/util/template-factory.js
js/tests/browsers.js
js/tests/integration/bundle-modularity.js
js/tests/integration/rollup.bundle-modularity.js
js/tests/integration/rollup.bundle.js
js/tests/karma.conf.js
js/tests/unit/.eslintrc.json [deleted file]
js/tests/unit/alert.spec.js
js/tests/unit/base-component.spec.js
js/tests/unit/button.spec.js
js/tests/unit/carousel.spec.js
js/tests/unit/collapse.spec.js
js/tests/unit/dom/data.spec.js
js/tests/unit/dom/event-handler.spec.js
js/tests/unit/dom/manipulator.spec.js
js/tests/unit/dom/selector-engine.spec.js
js/tests/unit/dropdown.spec.js
js/tests/unit/jquery.spec.js
js/tests/unit/modal.spec.js
js/tests/unit/offcanvas.spec.js
js/tests/unit/popover.spec.js
js/tests/unit/scrollspy.spec.js
js/tests/unit/tab.spec.js
js/tests/unit/toast.spec.js
js/tests/unit/tooltip.spec.js
js/tests/unit/util/backdrop.spec.js
js/tests/unit/util/component-functions.spec.js
js/tests/unit/util/config.spec.js
js/tests/unit/util/focustrap.spec.js
js/tests/unit/util/index.spec.js
js/tests/unit/util/sanitizer.spec.js
js/tests/unit/util/scrollbar.spec.js
js/tests/unit/util/swipe.spec.js
js/tests/unit/util/template-factory.spec.js
js/tests/visual/.eslintrc.json [deleted file]
package.json
scss/tests/jasmine.js
scss/tests/sass-true/register.js
scss/tests/sass-true/runner.js
site/.eslintrc.json [deleted file]
site/content/docs/5.3/getting-started/javascript.md

index 04bae15411b172a511eb481732274912f951df87..4c5b84f35d507056b203d28f76c1452aab44a86f 100644 (file)
@@ -3,6 +3,5 @@
 **/vendor/
 /_site/
 /js/coverage/
-/js/tests/integration/
 /site/static/sw.js
-/site/layouts/
+/site/layouts/partials/
index 5443b97bc5590c8b7249dc09a9fc0eb22382bfdf..6b3d61469d29591c60b3777f420aff838537f924 100644 (file)
       "error",
       "never"
     ],
+    "import/extensions": [
+      "error",
+      "ignorePackages",
+      {
+        "js": "always"
+      }
+    ],
+    "import/first": "error",
+    "import/newline-after-import": "error",
+    "import/no-absolute-path": "error",
+    "import/no-amd": "error",
+    "import/no-cycle": [
+      "error",
+      {
+        "ignoreExternal": true
+      }
+    ],
+    "import/no-duplicates": "error",
+    "import/no-extraneous-dependencies": "error",
+    "import/no-mutable-exports": "error",
+    "import/no-named-as-default": "error",
+    "import/no-named-as-default-member": "error",
+    "import/no-named-default": "error",
+    "import/no-self-import": "error",
+    "import/no-unassigned-import": [
+      "error"
+    ],
+    "import/no-useless-path-segments": "error",
+    "import/order": "error",
     "indent": [
       "error",
       2,
@@ -51,7 +80,9 @@
       "error",
       "never"
     ],
+    "strict": "error",
     "unicorn/explicit-length-check": "off",
+    "unicorn/filename-case": "off",
     "unicorn/no-array-callback-reference": "off",
     "unicorn/no-array-method-this-argument": "off",
     "unicorn/no-null": "off",
     "unicorn/prefer-query-selector": "off",
     "unicorn/prefer-spread": "off",
     "unicorn/prevent-abbreviations": "off"
-  }
+  },
+  "overrides": [
+    {
+      "files": [
+        "build/**"
+      ],
+      "env": {
+        "browser": false,
+        "node": true
+      },
+      "parserOptions": {
+        "sourceType": "script"
+      },
+      "rules": {
+        "no-console": "off",
+        "unicorn/prefer-top-level-await": "off"
+      }
+    },
+    {
+      "files": [
+        "js/**"
+      ],
+      "parserOptions": {
+        "sourceType": "module"
+      }
+    },
+    {
+      "files": [
+        "js/tests/*.js",
+        "js/tests/integration/rollup*.js"
+      ],
+      "env": {
+        "node": true
+      },
+      "parserOptions": {
+        "sourceType": "script"
+      }
+    },
+    {
+      "files": [
+        "js/tests/unit/**"
+      ],
+      "env": {
+        "jasmine": true
+      },
+      "rules": {
+        "no-console": "off",
+        "unicorn/consistent-function-scoping": "off",
+        "unicorn/no-useless-undefined": "off",
+        "unicorn/prefer-add-event-listener": "off"
+      }
+    },
+    {
+      "files": [
+        "js/tests/visual/**"
+      ],
+      "plugins": [
+        "html"
+      ],
+      "settings": {
+        "html/html-extensions": [
+          ".html"
+        ]
+      },
+      "rules": {
+        "no-console": "off",
+        "no-new": "off",
+        "unicorn/no-array-for-each": "off"
+      }
+    },
+    {
+      "files": [
+        "scss/tests/**"
+      ],
+      "env": {
+        "node": true
+      },
+      "parserOptions": {
+        "sourceType": "script"
+      }
+    },
+    {
+      "files": [
+        "site/**"
+      ],
+      "env": {
+        "browser": true,
+        "node": false
+      },
+      "parserOptions": {
+        "sourceType": "script",
+        "ecmaVersion": 2019
+      },
+      "rules": {
+        "no-new": "off",
+        "unicorn/no-array-for-each": "off",
+        "unicorn/numeric-separators-style": "off"
+      }
+    },
+    {
+      "files": [
+        "**/*.md"
+      ],
+      "plugins": [
+        "markdown"
+      ],
+      "processor": "markdown/markdown"
+    },
+    {
+      "files": [
+        "**/*.md/*.js"
+      ],
+      "extends": "plugin:markdown/recommended",
+      "parserOptions": {
+        "sourceType": "module"
+      },
+      "rules": {
+        "unicorn/prefer-node-protocol": "off"
+      }
+    }
+  ]
 }
diff --git a/build/.eslintrc.json b/build/.eslintrc.json
deleted file mode 100644 (file)
index dec6323..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "env": {
-    "browser": false,
-    "node": true
-  },
-  "parserOptions": {
-    "sourceType": "script"
-  },
-  "extends": "../.eslintrc.json",
-  "rules": {
-    "no-console": "off",
-    "strict": "error",
-    "unicorn/prefer-top-level-await": "off"
-  }
-}
index df82ff32edf3dcb49ce628cd0558297e9cca2929..a022f1c4857014559e444ff841e6a9c2ad660dfd 100644 (file)
@@ -1,6 +1,7 @@
 'use strict'
 
 const pkg = require('../package.json')
+
 const year = new Date().getFullYear()
 
 function getBanner(pluginFilename) {
diff --git a/js/.eslintrc.json b/js/.eslintrc.json
deleted file mode 100644 (file)
index 97ea9e0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "extends": "../.eslintrc.json",
-  "env": {
-    "es2022": true
-  },
-  "parserOptions": {
-    "ecmaVersion": "latest",
-    "sourceType": "module"
-  },
-  "overrides": [
-    {
-      "files": [
-        "./*.js",
-        "./src/**/*.js"
-      ],
-      "rules": {
-        "import/extensions": [
-          2,
-          {
-            "js": "always"
-          }
-        ]
-      }
-    }
-  ]
-}
index 0c60b88d3b2cbe6a25632a36b1711843fbc14600..88232bcebaae55cf9e0cf09db7bf9a451f2dc974 100644 (file)
@@ -5,10 +5,10 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin } from './util/index.js'
-import EventHandler from './dom/event-handler.js'
 import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
 import { enableDismissTrigger } from './util/component-functions.js'
+import { defineJQueryPlugin } from './util/index.js'
 
 /**
  * Constants
index ee30390ae4417f829695fa7b25620376a2f8ae79..813fc39c63142a0fb46d2d52e2d20c1b98cb6ee4 100644 (file)
@@ -6,9 +6,9 @@
  */
 
 import Data from './dom/data.js'
-import { executeAfterTransition, getElement } from './util/index.js'
 import EventHandler from './dom/event-handler.js'
 import Config from './util/config.js'
+import { executeAfterTransition, getElement } from './util/index.js'
 
 /**
  * Constants
index 7b4e128048e3cd5f34c0d68eb761a18d96405306..a797f5050d405d6472182bbc41424d60129a54eb 100644 (file)
@@ -5,9 +5,9 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin } from './util/index.js'
-import EventHandler from './dom/event-handler.js'
 import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
+import { defineJQueryPlugin } from './util/index.js'
 
 /**
  * Constants
index 4d15d7fded7504207f278c6133e21320a9c53a58..68d11a32f2ab267d6d7eb8fb6389301fc2aaaa0e 100644 (file)
@@ -5,6 +5,10 @@
  * --------------------------------------------------------------------------
  */
 
+import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
 import {
   defineJQueryPlugin,
   getNextActiveElement,
@@ -13,11 +17,7 @@ import {
   reflow,
   triggerTransitionEnd
 } from './util/index.js'
-import EventHandler from './dom/event-handler.js'
-import Manipulator from './dom/manipulator.js'
-import SelectorEngine from './dom/selector-engine.js'
 import Swipe from './util/swipe.js'
-import BaseComponent from './base-component.js'
 
 /**
  * Constants
@@ -329,7 +329,7 @@ class Carousel extends BaseComponent {
 
     if (!activeElement || !nextElement) {
       // Some weirdness is happening, so we bail
-      // todo: change tests that use empty divs to avoid this check
+      // TODO: change tests that use empty divs to avoid this check
       return
     }
 
index 815b415d4ebedfbdf825a640041920c279eee402..9f0c60cc5338bf75fc3af18523bbbf55da49cbba 100644 (file)
@@ -5,14 +5,14 @@
  * --------------------------------------------------------------------------
  */
 
+import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
+import SelectorEngine from './dom/selector-engine.js'
 import {
   defineJQueryPlugin,
   getElement,
   reflow
 } from './util/index.js'
-import EventHandler from './dom/event-handler.js'
-import SelectorEngine from './dom/selector-engine.js'
-import BaseComponent from './base-component.js'
 
 /**
  * Constants
index 97cf3041efd266fe01b03b257fdcc5907a99ebe4..561d8751d7ca9fa76a5a2ba1884adbe099269f28 100644 (file)
@@ -128,7 +128,7 @@ function findHandler(events, callable, delegationSelector = null) {
 
 function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
   const isDelegated = typeof handler === 'string'
-  // todo: tooltip passes `false` instead of selector, so we need to check
+  // TODO: tooltip passes `false` instead of selector, so we need to check
   const callable = isDelegated ? delegationFunction : (handler || delegationFunction)
   let typeEvent = getTypeEvent(originalTypeEvent)
 
index b2030f7a8a7909171163ce8ba1b1f1daf32613ba..af5fd16fc956a36481d5366b4c5b67d89c963eee 100644 (file)
@@ -6,6 +6,10 @@
  */
 
 import * as Popper from '@popperjs/core'
+import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
 import {
   defineJQueryPlugin,
   execute,
@@ -17,10 +21,6 @@ import {
   isVisible,
   noop
 } from './util/index.js'
-import EventHandler from './dom/event-handler.js'
-import Manipulator from './dom/manipulator.js'
-import SelectorEngine from './dom/selector-engine.js'
-import BaseComponent from './base-component.js'
 
 /**
  * Constants
@@ -96,7 +96,7 @@ class Dropdown extends BaseComponent {
 
     this._popper = null
     this._parent = this._element.parentNode // dropdown wrapper
-    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
+    // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
     this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||
       SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||
       SelectorEngine.findOne(SELECTOR_MENU, this._parent)
@@ -311,7 +311,7 @@ class Dropdown extends BaseComponent {
 
     // Disable Popper if we have a static display or Dropdown is in Navbar
     if (this._inNavbar || this._config.display === 'static') {
-      Manipulator.setDataAttribute(this._menu, 'popper', 'static') // todo:v6 remove
+      Manipulator.setDataAttribute(this._menu, 'popper', 'static') // TODO: v6 remove
       defaultBsPopperConfig.modifiers = [{
         name: 'applyStyles',
         enabled: false
@@ -409,7 +409,7 @@ class Dropdown extends BaseComponent {
 
     event.preventDefault()
 
-    // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
+    // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
     const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?
       this :
       (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||
index c4c4102042d58620c4d67fb0717c5849d95be1eb..b44cbb94d943162e036032c5e5cdd35f95cfc039 100644 (file)
@@ -5,14 +5,14 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin, isRTL, isVisible, reflow } from './util/index.js'
+import BaseComponent from './base-component.js'
 import EventHandler from './dom/event-handler.js'
 import SelectorEngine from './dom/selector-engine.js'
-import ScrollBarHelper from './util/scrollbar.js'
-import BaseComponent from './base-component.js'
 import Backdrop from './util/backdrop.js'
-import FocusTrap from './util/focustrap.js'
 import { enableDismissTrigger } from './util/component-functions.js'
+import FocusTrap from './util/focustrap.js'
+import { defineJQueryPlugin, isRTL, isVisible, reflow } from './util/index.js'
+import ScrollBarHelper from './util/scrollbar.js'
 
 /**
  * Constants
index 7a7f92e96e9ffeb55874c64d2bb9cf0c9838a299..8d1feb13bb78b1281893714f31c7aac51cf0841a 100644 (file)
@@ -5,18 +5,18 @@
  * --------------------------------------------------------------------------
  */
 
+import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
+import SelectorEngine from './dom/selector-engine.js'
+import Backdrop from './util/backdrop.js'
+import { enableDismissTrigger } from './util/component-functions.js'
+import FocusTrap from './util/focustrap.js'
 import {
   defineJQueryPlugin,
   isDisabled,
   isVisible
 } from './util/index.js'
 import ScrollBarHelper from './util/scrollbar.js'
-import EventHandler from './dom/event-handler.js'
-import BaseComponent from './base-component.js'
-import SelectorEngine from './dom/selector-engine.js'
-import Backdrop from './util/backdrop.js'
-import FocusTrap from './util/focustrap.js'
-import { enableDismissTrigger } from './util/component-functions.js'
 
 /**
  * Constants
index 2679bdae97db88381cf9f027f003144597d17cbe..612c5218fc9c97a19594ac918428ed79c14688e0 100644 (file)
@@ -5,8 +5,8 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin } from './util/index.js'
 import Tooltip from './tooltip.js'
+import { defineJQueryPlugin } from './util/index.js'
 
 /**
  * Constants
index 7695f2aef67ca7033e4ee5f2306f2091fe76871c..0b1747c8ae0951d9065017ddd767d0362983eac2 100644 (file)
@@ -5,10 +5,10 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index.js'
+import BaseComponent from './base-component.js'
 import EventHandler from './dom/event-handler.js'
 import SelectorEngine from './dom/selector-engine.js'
-import BaseComponent from './base-component.js'
+import { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index.js'
 
 /**
  * Constants
index d46f290f09e6f06cb82556cbe8b4e9c5f536ca85..d9993d56e8dff6f990c3615fc1a94f2c7c8e8538 100644 (file)
@@ -5,10 +5,10 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin, getNextActiveElement, isDisabled } from './util/index.js'
+import BaseComponent from './base-component.js'
 import EventHandler from './dom/event-handler.js'
 import SelectorEngine from './dom/selector-engine.js'
-import BaseComponent from './base-component.js'
+import { defineJQueryPlugin, getNextActiveElement, isDisabled } from './util/index.js'
 
 /**
  * Constants
@@ -43,7 +43,7 @@ const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'
 const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'
 const SELECTOR_OUTER = '.nav-item, .list-group-item'
 const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`
-const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]' // todo:v6: could be only `tab`
+const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]' // TODO: could only be `tab` in v6
 const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`
 
 const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`
@@ -59,7 +59,7 @@ class Tab extends BaseComponent {
 
     if (!this._parent) {
       return
-      // todo: should Throw exception on v6
+      // TODO: should throw exception in v6
       // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
     }
 
index a6204422246ad8966f3170d05ce4be6df7dc2384..d5d9c0ee0c948d3ad4c2c2231980b209bc76d304 100644 (file)
@@ -5,10 +5,10 @@
  * --------------------------------------------------------------------------
  */
 
-import { defineJQueryPlugin, reflow } from './util/index.js'
-import EventHandler from './dom/event-handler.js'
 import BaseComponent from './base-component.js'
+import EventHandler from './dom/event-handler.js'
 import { enableDismissTrigger } from './util/component-functions.js'
+import { defineJQueryPlugin, reflow } from './util/index.js'
 
 /**
  * Constants
index ff1db974f018f0b1064365b32051bc08566b3765..1252811573e9a161f23a5019f7618c1eb0131204 100644 (file)
@@ -6,11 +6,11 @@
  */
 
 import * as Popper from '@popperjs/core'
-import { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index.js'
-import { DefaultAllowlist } from './util/sanitizer.js'
+import BaseComponent from './base-component.js'
 import EventHandler from './dom/event-handler.js'
 import Manipulator from './dom/manipulator.js'
-import BaseComponent from './base-component.js'
+import { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index.js'
+import { DefaultAllowlist } from './util/sanitizer.js'
 import TemplateFactory from './util/template-factory.js'
 
 /**
@@ -197,7 +197,7 @@ class Tooltip extends BaseComponent {
       return
     }
 
-    // todo v6 remove this OR make it optional
+    // TODO: v6 remove this or make it optional
     this._disposePopper()
 
     const tip = this._getTipElement()
@@ -302,13 +302,13 @@ class Tooltip extends BaseComponent {
   _createTipElement(content) {
     const tip = this._getTemplateFactory(content).toHtml()
 
-    // todo: remove this check on v6
+    // TODO: remove this check in v6
     if (!tip) {
       return null
     }
 
     tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)
-    // todo: on v6 the following can be achieved with CSS only
+    // TODO: v6 the following can be achieved with CSS only
     tip.classList.add(`bs-${this.constructor.NAME}-auto`)
 
     const tipId = getUID(this.constructor.NAME).toString()
index c552aef43106e8d7be240d8edf0ebd7abb9b3651..0d478e98de715d35001ac52217e5e1e665153647 100644 (file)
@@ -6,8 +6,8 @@
  */
 
 import EventHandler from '../dom/event-handler.js'
-import { execute, executeAfterTransition, getElement, reflow } from './index.js'
 import Config from './config.js'
+import { execute, executeAfterTransition, getElement, reflow } from './index.js'
 
 /**
  * Constants
index 5eb59b4afd80fe9c717d0608307f89e07a1b8e15..4be828f831ffd627fae9eec24ec674410b20b59f 100644 (file)
@@ -6,8 +6,8 @@
  */
 
 import EventHandler from '../dom/event-handler.js'
-import { isDisabled } from './index.js'
 import SelectorEngine from '../dom/selector-engine.js'
+import { isDisabled } from './index.js'
 
 const enableDismissTrigger = (component, method = 'hide') => {
   const clickEvent = `click.dismiss${component.EVENT_KEY}`
index 95221c1efff5f1bd46b7546b3d51686101ccc2da..a2b4bfba0d05a9c8631a5f52b01a2dfb27916df5 100644 (file)
@@ -5,8 +5,8 @@
  * --------------------------------------------------------------------------
  */
 
-import { isElement, toType } from './index.js'
 import Manipulator from '../dom/manipulator.js'
+import { isElement, toType } from './index.js'
 
 /**
  * Class definition
index 079c9108b82988f2d7891db3d52a093426d514dd..413f178dace90c6238e0acd29361c4debc043477 100644 (file)
@@ -5,8 +5,8 @@
  * --------------------------------------------------------------------------
  */
 
-import SelectorEngine from '../dom/selector-engine.js'
 import Manipulator from '../dom/manipulator.js'
+import SelectorEngine from '../dom/selector-engine.js'
 import { isElement } from './index.js'
 
 /**
index 33ca90d8a6f41c5f4e5e0b194c880dfe741efa1e..d2f708711b6258b5809ea967e50d79ca1c372ec4 100644 (file)
@@ -5,8 +5,8 @@
  * --------------------------------------------------------------------------
  */
 
-import Config from './config.js'
 import EventHandler from '../dom/event-handler.js'
+import Config from './config.js'
 import { execute } from './index.js'
 
 /**
index bd827174bd654ef255b6c480feb8c90dbcd742bb..f73589bcc7851cdae63b7459e633a8815120a53a 100644 (file)
@@ -5,10 +5,10 @@
  * --------------------------------------------------------------------------
  */
 
-import { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'
-import { execute, getElement, isElement } from './index.js'
 import SelectorEngine from '../dom/selector-engine.js'
 import Config from './config.js'
+import { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'
+import { execute, getElement, isElement } from './index.js'
 
 /**
  * Constants
index 8adedc68b130bd6e8d0a95ed79ce7bc7c4688e45..c515e64a03ef072d8e6ab5d4a06a7449a8e50afa 100644 (file)
@@ -1,6 +1,7 @@
-/* eslint-env node */
 /* eslint-disable camelcase */
 
+'use strict'
+
 const browsers = {
   safariMac: {
     base: 'BrowserStack',
index 8546141b195544fbed5a0ea23c5cdaa6005080f6..3c1eec94402fc9d2b7a062652430ec559c774d60 100644 (file)
@@ -1,3 +1,5 @@
+/* eslint-disable import/extensions, import/no-unassigned-import */
+
 import Tooltip from '../../dist/tooltip'
 import '../../dist/carousel'
 
index a8670ca8ce48dfd0f08acb59f0d1a9028d01f70d..63d6515251ccf0726b85a0bae1517f8d8c2a001e 100644 (file)
@@ -1,7 +1,7 @@
-/* eslint-env node */
+'use strict'
 
 const commonjs = require('@rollup/plugin-commonjs')
-const configRollup = require('./rollup.bundle')
+const configRollup = require('./rollup.bundle.js')
 
 const config = {
   ...configRollup,
index caddcab484f3e9f09e253a510e58abe8d40fb8c5..8b3c578a255af14188c89a9af66e9d8528544cf1 100644 (file)
@@ -1,4 +1,4 @@
-/* eslint-env node */
+'use strict'
 
 const { babel } = require('@rollup/plugin-babel')
 const { nodeResolve } = require('@rollup/plugin-node-resolve')
index 11c6f30451f2d9d371ab9fa8b6f0ce1692e6365c..36bf7f2df8fe2ee6751e3a3d6fc0c7f636fb8929 100644 (file)
@@ -1,5 +1,3 @@
-/* eslint-env node */
-
 'use strict'
 
 const path = require('node:path')
@@ -8,7 +6,7 @@ const { babel } = require('@rollup/plugin-babel')
 const istanbul = require('rollup-plugin-istanbul')
 const { nodeResolve } = require('@rollup/plugin-node-resolve')
 const replace = require('@rollup/plugin-replace')
-const { browsers } = require('./browsers')
+const { browsers } = require('./browsers.js')
 
 const ENV = process.env
 const BROWSERSTACK = Boolean(ENV.BROWSERSTACK)
diff --git a/js/tests/unit/.eslintrc.json b/js/tests/unit/.eslintrc.json
deleted file mode 100644 (file)
index 6362a1a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "extends": [
-    "../../../.eslintrc.json"
-  ],
-  "env": {
-    "jasmine": true
-  },
-  "rules": {
-    "unicorn/consistent-function-scoping": "off",
-    "unicorn/no-useless-undefined": "off",
-    "unicorn/prefer-add-event-listener": "off"
-  }
-}
index d3740c91ed233bdf4d8daf812bd850d9477f8a2e..97cc3cc5325b237a93c85d4f1d22020c520de58b 100644 (file)
@@ -1,6 +1,6 @@
-import Alert from '../../src/alert'
-import { getTransitionDurationFromElement } from '../../src/util/index'
-import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture'
+import Alert from '../../src/alert.js'
+import { getTransitionDurationFromElement } from '../../src/util/index.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Alert', () => {
   let fixtureEl
index b2352d66bb455e2377169ea7a34071e28dcafe5c..5b7d52e2331ad6f59b1d9d581ba653ee4fe42355 100644 (file)
@@ -1,7 +1,7 @@
-import BaseComponent from '../../src/base-component'
-import { clearFixture, getFixture } from '../helpers/fixture'
-import EventHandler from '../../src/dom/event-handler'
-import { noop } from '../../src/util'
+import BaseComponent from '../../src/base-component.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { noop } from '../../src/util/index.js'
+import { clearFixture, getFixture } from '../helpers/fixture.js'
 
 class DummyClass extends BaseComponent {
   constructor(element) {
index 09ed17efed204f51f48ee5844e44c0015fc41cbd..6624fee7c98e27c18573467ffe98e642ad799443 100644 (file)
@@ -1,5 +1,5 @@
-import Button from '../../src/button'
-import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
+import Button from '../../src/button.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Button', () => {
   let fixtureEl
index d951bd5ae0be93a32883b10094e7d515aa54b158..c468b5c04eb43f2f47af8306bc970295d790160a 100644 (file)
@@ -1,8 +1,8 @@
-import Carousel from '../../src/carousel'
-import EventHandler from '../../src/dom/event-handler'
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
-import { isRTL, noop } from '../../src/util/index'
-import Swipe from '../../src/util/swipe'
+import Carousel from '../../src/carousel.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { isRTL, noop } from '../../src/util/index.js'
+import Swipe from '../../src/util/swipe.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Carousel', () => {
   const { Simulator, PointerEvent } = window
index 5a4fe1063d4be9acfb9325e3efd284225c77fdd6..58c5367526b9961da4128b92c326a12fe25f5e0c 100644 (file)
@@ -1,6 +1,6 @@
-import Collapse from '../../src/collapse'
-import EventHandler from '../../src/dom/event-handler'
-import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture'
+import Collapse from '../../src/collapse.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Collapse', () => {
   let fixtureEl
index e898cbba21d26614d89359e5e0b4ea3515373864..04e57a8bced432310d2dc6d7b9187562764182e8 100644 (file)
@@ -1,5 +1,5 @@
-import Data from '../../../src/dom/data'
-import { getFixture, clearFixture } from '../../helpers/fixture'
+import Data from '../../../src/dom/data.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('Data', () => {
   const TEST_KEY = 'bs.test'
@@ -89,7 +89,6 @@ describe('Data', () => {
     expect(Data.get(div, TEST_KEY)).toBeNull()
   })
 
-  /* eslint-disable no-console */
   it('should console.error a message if called with multiple keys', () => {
     console.error = jasmine.createSpy('console.error')
 
@@ -102,5 +101,4 @@ describe('Data', () => {
     expect(console.error).toHaveBeenCalled()
     expect(Data.get(div, UNKNOWN_KEY)).toBeNull()
   })
-  /* eslint-enable no-console */
 })
index 623b9c160d595068f4e03d5b027dc81ad9cb0c2c..7f99c412237341c9d11134e340508a35ebac2b6f 100644 (file)
@@ -1,6 +1,6 @@
-import EventHandler from '../../../src/dom/event-handler'
-import { clearFixture, getFixture } from '../../helpers/fixture'
-import { noop } from '../../../src/util'
+import EventHandler from '../../../src/dom/event-handler.js'
+import { noop } from '../../../src/util/index.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('EventHandler', () => {
   let fixtureEl
index 4561e2e46c5541a98702557a1851351ced419ff2..9d0be3218f8640f7ab65c58f55f00b45b04855b7 100644 (file)
@@ -1,5 +1,5 @@
-import Manipulator from '../../../src/dom/manipulator'
-import { clearFixture, getFixture } from '../../helpers/fixture'
+import Manipulator from '../../../src/dom/manipulator.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('Manipulator', () => {
   let fixtureEl
index 905e25baec653302f963560be8427b45129c0c15..8dd7b1f893fdcd92b55bd9351c5f65644d96bcc9 100644 (file)
@@ -1,5 +1,5 @@
-import SelectorEngine from '../../../src/dom/selector-engine'
-import { clearFixture, getFixture } from '../../helpers/fixture'
+import SelectorEngine from '../../../src/dom/selector-engine.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('SelectorEngine', () => {
   let fixtureEl
index 2bbd7c00a794a6813bf1d70147f13296575325c2..918435247756ed0006de93360f473b1004b6b9ab 100644 (file)
@@ -1,7 +1,7 @@
-import Dropdown from '../../src/dropdown'
-import EventHandler from '../../src/dom/event-handler'
-import { noop } from '../../src/util/index'
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import EventHandler from '../../src/dom/event-handler.js'
+import Dropdown from '../../src/dropdown.js'
+import { noop } from '../../src/util/index.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Dropdown', () => {
   let fixtureEl
index 7da39d63038bd1afcab1d38b4a84b281f9f58edd..7d7f29dc728820c48c88c265dfd76c0f6838749c 100644 (file)
@@ -1,18 +1,18 @@
 /* eslint-env jquery */
 
-import Alert from '../../src/alert'
-import Button from '../../src/button'
-import Carousel from '../../src/carousel'
-import Collapse from '../../src/collapse'
-import Dropdown from '../../src/dropdown'
-import Modal from '../../src/modal'
-import Offcanvas from '../../src/offcanvas'
-import Popover from '../../src/popover'
-import ScrollSpy from '../../src/scrollspy'
-import Tab from '../../src/tab'
-import Toast from '../../src/toast'
-import Tooltip from '../../src/tooltip'
-import { clearFixture, getFixture } from '../helpers/fixture'
+import Alert from '../../src/alert.js'
+import Button from '../../src/button.js'
+import Carousel from '../../src/carousel.js'
+import Collapse from '../../src/collapse.js'
+import Dropdown from '../../src/dropdown.js'
+import Modal from '../../src/modal.js'
+import Offcanvas from '../../src/offcanvas.js'
+import Popover from '../../src/popover.js'
+import ScrollSpy from '../../src/scrollspy.js'
+import Tab from '../../src/tab.js'
+import Toast from '../../src/toast.js'
+import Tooltip from '../../src/tooltip.js'
+import { clearFixture, getFixture } from '../helpers/fixture.js'
 
 describe('jQuery', () => {
   let fixtureEl
index fdee29e95abd2125d8d7ef5dd27c14f5c91bc632..6434d8b3cca2b6904b4bedccc1a0fcee009e40c2 100644 (file)
@@ -1,7 +1,7 @@
-import Modal from '../../src/modal'
-import EventHandler from '../../src/dom/event-handler'
-import ScrollBarHelper from '../../src/util/scrollbar'
-import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import EventHandler from '../../src/dom/event-handler.js'
+import Modal from '../../src/modal.js'
+import ScrollBarHelper from '../../src/util/scrollbar.js'
+import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Modal', () => {
   let fixtureEl
index da2fb97480337bb032c28157be675aac746dce68..03e7d9ed3d3cde784c2428988599e3b21f5eca8e 100644 (file)
@@ -1,8 +1,8 @@
-import Offcanvas from '../../src/offcanvas'
-import EventHandler from '../../src/dom/event-handler'
-import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
-import { isVisible } from '../../src/util/index'
-import ScrollBarHelper from '../../src/util/scrollbar'
+import EventHandler from '../../src/dom/event-handler.js'
+import Offcanvas from '../../src/offcanvas.js'
+import { isVisible } from '../../src/util/index.js'
+import ScrollBarHelper from '../../src/util/scrollbar.js'
+import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Offcanvas', () => {
   let fixtureEl
index baf691cdcec6f023100ec4c9cbf3d9b689ff811d..53dc7d89ea6d28446de14daf92af314ab4ed426e 100644 (file)
@@ -1,6 +1,6 @@
-import Popover from '../../src/popover'
-import EventHandler from '../../src/dom/event-handler'
-import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture'
+import EventHandler from '../../src/dom/event-handler.js'
+import Popover from '../../src/popover.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Popover', () => {
   let fixtureEl
index c7951e6ff12de8210735c35456316aa981ac11c5..070448c17e13654df8ea89825ec2f7f1860b589e 100644 (file)
@@ -1,8 +1,6 @@
-import ScrollSpy from '../../src/scrollspy'
-
-/** Test helpers */
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
-import EventHandler from '../../src/dom/event-handler'
+import EventHandler from '../../src/dom/event-handler.js'
+import ScrollSpy from '../../src/scrollspy.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('ScrollSpy', () => {
   let fixtureEl
index 95b31b4f05438c70192f01ca4f90456147cd2ce9..84690fc51fc058325a58e7d1b2ef809c6f03a13d 100644 (file)
@@ -1,5 +1,5 @@
-import Tab from '../../src/tab'
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import Tab from '../../src/tab.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Tab', () => {
   let fixtureEl
index 42d25156bb4ef410b839beea7688314c426f2d20..cfc56c74aaa5b1fcfcdb098f295a345b005d292d 100644 (file)
@@ -1,5 +1,5 @@
-import Toast from '../../src/toast'
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import Toast from '../../src/toast.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Toast', () => {
   let fixtureEl
index 1c85640c07a543d0d84f4b8eee15609e99918bfd..080432e9ababef12e620295f940b96832d7af71f 100644 (file)
@@ -1,7 +1,7 @@
-import Tooltip from '../../src/tooltip'
-import EventHandler from '../../src/dom/event-handler'
-import { noop } from '../../src/util/index'
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import EventHandler from '../../src/dom/event-handler.js'
+import Tooltip from '../../src/tooltip.js'
+import { noop } from '../../src/util/index.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
 
 describe('Tooltip', () => {
   let fixtureEl
index 73384fc90b6d8b455ebe962555a8aa00d6485ea3..0faaac6a5c5a448d8549e2374cfdccd12c9571f6 100644 (file)
@@ -1,6 +1,6 @@
-import Backdrop from '../../../src/util/backdrop'
-import { getTransitionDurationFromElement } from '../../../src/util/index'
-import { clearFixture, getFixture } from '../../helpers/fixture'
+import Backdrop from '../../../src/util/backdrop.js'
+import { getTransitionDurationFromElement } from '../../../src/util/index.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 const CLASS_BACKDROP = '.modal-backdrop'
 const CLASS_NAME_FADE = 'fade'
index ec36672cb385e5eddbeff439539e7de71f1c632e..ce83785e2371a7a4b53240c2c1383cdeb76b6bcf 100644 (file)
@@ -1,8 +1,6 @@
-/* Test helpers */
-
-import { clearFixture, createEvent, getFixture } from '../../helpers/fixture'
-import { enableDismissTrigger } from '../../../src/util/component-functions'
-import BaseComponent from '../../../src/base-component'
+import BaseComponent from '../../../src/base-component.js'
+import { enableDismissTrigger } from '../../../src/util/component-functions.js'
+import { clearFixture, createEvent, getFixture } from '../../helpers/fixture.js'
 
 class DummyClass2 extends BaseComponent {
   static get NAME() {
index 0037e09d78769b5ebef4da7e9c66ebf4f55eea19..93987a74add1eb91084abcb3c276560faab9d18e 100644 (file)
@@ -1,5 +1,5 @@
-import Config from '../../../src/util/config'
-import { clearFixture, getFixture } from '../../helpers/fixture'
+import Config from '../../../src/util/config.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 class DummyConfigClass extends Config {
   static get NAME() {
index bedd124c9ec13fe029058d194d1892b117f21390..0a20017d598bcc712c960f8174cb5589641b7b6a 100644 (file)
@@ -1,7 +1,7 @@
-import FocusTrap from '../../../src/util/focustrap'
-import EventHandler from '../../../src/dom/event-handler'
-import SelectorEngine from '../../../src/dom/selector-engine'
-import { clearFixture, createEvent, getFixture } from '../../helpers/fixture'
+import EventHandler from '../../../src/dom/event-handler.js'
+import SelectorEngine from '../../../src/dom/selector-engine.js'
+import FocusTrap from '../../../src/util/focustrap.js'
+import { clearFixture, createEvent, getFixture } from '../../helpers/fixture.js'
 
 describe('FocusTrap', () => {
   let fixtureEl
index 202c72061dc5afd68245902ad906638f15ce8e43..4065a91680321b2c4fcb968272a48cb9366549f9 100644 (file)
@@ -1,6 +1,6 @@
-import * as Util from '../../../src/util/index'
-import { clearFixture, getFixture } from '../../helpers/fixture'
-import { noop } from '../../../src/util/index'
+import * as Util from '../../../src/util/index.js'
+import { noop } from '../../../src/util/index.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('Util', () => {
   let fixtureEl
index c656aed3535a5bb1905a0dd196e7198326d709a7..55e9b633642be0dcd2521c1e8728f1ec9f8edf26 100644 (file)
@@ -1,4 +1,4 @@
-import { DefaultAllowlist, sanitizeHtml } from '../../../src/util/sanitizer'
+import { DefaultAllowlist, sanitizeHtml } from '../../../src/util/sanitizer.js'
 
 describe('Sanitizer', () => {
   describe('sanitizeHtml', () => {
index 6fcf5718bb4fc338e0da0a1a64e10c5e6c3f221d..6dadfcdd1c7ab23f89be35c288ad8267362d3f7d 100644 (file)
@@ -1,6 +1,6 @@
-import { clearBodyAndDocument, clearFixture, getFixture } from '../../helpers/fixture'
-import Manipulator from '../../../src/dom/manipulator'
-import ScrollBarHelper from '../../../src/util/scrollbar'
+import Manipulator from '../../../src/dom/manipulator.js'
+import ScrollBarHelper from '../../../src/util/scrollbar.js'
+import { clearBodyAndDocument, clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('ScrollBar', () => {
   let fixtureEl
index f92bb5d00741c13a97648169ea6fbfab145b7d54..9252d312ba4f519c4f3142283754616bbbeeb43a 100644 (file)
@@ -1,7 +1,7 @@
-import { clearFixture, getFixture } from '../../helpers/fixture'
-import EventHandler from '../../../src/dom/event-handler'
-import Swipe from '../../../src/util/swipe'
-import { noop } from '../../../src/util'
+import EventHandler from '../../../src/dom/event-handler.js'
+import { noop } from '../../../src/util/index.js'
+import Swipe from '../../../src/util/swipe.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('Swipe', () => {
   const { Simulator, PointerEvent } = window
index 5e5724c5f81dce908d64177416bfe04a3886f291..07f4d91c7483a85e05f77a0eed07af3ec785a1a4 100644 (file)
@@ -1,5 +1,5 @@
-import { clearFixture, getFixture } from '../../helpers/fixture'
-import TemplateFactory from '../../../src/util/template-factory'
+import TemplateFactory from '../../../src/util/template-factory.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
 
 describe('TemplateFactory', () => {
   let fixtureEl
diff --git a/js/tests/visual/.eslintrc.json b/js/tests/visual/.eslintrc.json
deleted file mode 100644 (file)
index 8a33225..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "plugins": [
-    "html"
-  ],
-  "extends": "../../../.eslintrc.json",
-  "parserOptions": {
-    "sourceType": "module"
-  },
-  "settings": {
-    "html/html-extensions": [
-      ".html"
-    ]
-  },
-  "rules": {
-    "no-console": "off",
-    "no-new": "off",
-    "unicorn/no-array-for-each": "off"
-  }
-}
index 415a49408e78b5c0142680b679207b2043f955a3..602192164a318ca27301253a837f9e0a0d94b758 100644 (file)
@@ -61,7 +61,7 @@
     "js-compile-standalone-esm": "rollup --environment ESM:true,BUNDLE:false --config build/rollup.config.js --sourcemap",
     "js-compile-bundle": "rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap",
     "js-compile-plugins": "node build/build-plugins.js",
-    "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js .",
+    "js-lint": "eslint --cache --cache-location .cache/.eslintcache --report-unused-disable-directives --ext .html,.js,.md .",
     "js-minify": "npm-run-all --aggregate-output --parallel js-minify-*",
     "js-minify-standalone": "terser --compress passes=2 --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",
     "js-minify-standalone-esm": "terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.esm.js.map,includeSources,url=bootstrap.esm.min.js.map\" --output dist/js/bootstrap.esm.min.js dist/js/bootstrap.esm.js",
index dd78aa5511db04be3fce8dbb7b9dae25597b4dba..25d838c97a4f9141d4ddef7a201025ad9e631078 100644 (file)
@@ -1,5 +1,3 @@
-/* eslint-env node */
-
 /* eslint-disable camelcase */
 
 'use strict'
index bf4139ab115614589e59aaa0f22d806d118a822b..d93e414c1fa61c1a6e625ee394c2d358bf7fdb9e 100644 (file)
@@ -1,8 +1,7 @@
-/* eslint-env node */
-
 'use strict'
 
 const path = require('node:path')
+
 const runnerPath = path.join(__dirname, 'runner').replace(/\\/g, '/')
 
 require.extensions['.scss'] = (module, filename) => {
index 71dc222a56f7cc534690c5c729cfa81ebc43c4b3..bef870ac6b1383450a178428c59432026b9db940 100644 (file)
@@ -1,10 +1,8 @@
-/* eslint-env node */
-
 'use strict'
 
-const { runSass } = require('sass-true')
 const fs = require('node:fs')
 const path = require('node:path')
+const { runSass } = require('sass-true')
 
 module.exports = (filename, { describe, it }) => {
   const data = fs.readFileSync(filename, 'utf8')
diff --git a/site/.eslintrc.json b/site/.eslintrc.json
deleted file mode 100644 (file)
index 0a16f82..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-{
-  "extends": "../.eslintrc.json",
-  "env": {
-    "browser": true,
-    "node": false
-  },
-  "parserOptions": {
-    "sourceType": "script"
-  },
-  "plugins": [
-    "markdown"
-  ],
-  "rules": {
-    "no-new": "off",
-    "strict": "error",
-    "unicorn/no-array-for-each": "off",
-    "unicorn/numeric-separators-style": "off",
-    "unicorn/prefer-node-protocol": "off"
-  },
-  "overrides": [
-    {
-      // 2. Enable the Markdown processor for all .md files.
-      "files": [
-        "./**/*.md"
-      ],
-      "processor": "markdown/markdown"
-    },
-    {
-      // In v2, configuration for fenced code blocks is separate from the
-      // containing Markdown file. Each code block has a virtual filename
-      // appended to the Markdown file's path.
-      "files": [
-        "./**/*.md/*.js"
-      ],
-      // Configuration for fenced code blocks goes with the override for
-      // the code block's virtual filename, for example:
-      "parserOptions": {
-        "ecmaFeatures": {
-          "impliedStrict": true
-        }
-      },
-      "rules": {
-        "no-array-for-each": "off",
-        "no-labels": "off",
-        "no-redeclare": "off",
-        "no-undef": "off",
-        "no-unused-expressions": "off",
-        "no-unused-labels": "off",
-        "no-unused-vars": "off",
-        "unicorn/no-array-for-each": "off",
-        "unicorn/numeric-separators-style": "off"
-      }
-    }
-  ]
-}
index 739e9ef63ef30c04cd76a29c09b587238896a447..ef3c3ba643260c3fe63adf5c6811fa72a2664dc4 100644 (file)
@@ -30,6 +30,7 @@ A better alternative for those using this type of frameworks is to use a framewo
 
 We provide a version of Bootstrap built as `ESM` (`bootstrap.esm.js` and `bootstrap.esm.min.js`) which allows you to use Bootstrap as a module in the browser, if your [targeted browsers support it](https://caniuse.com/es6-module).
 
+<!-- eslint-skip -->
 ```html
 <script type="module">
   import { Toast } from 'bootstrap.esm.min.js'
@@ -54,6 +55,7 @@ Uncaught TypeError: Failed to resolve module specifier "@popperjs/core". Relativ
 
 To fix this, you can use an `importmap` to resolve the arbitrary module names to complete paths. If your [targeted browsers](https://caniuse.com/?search=importmap) do not support `importmap`, you'll need to use the [es-module-shims](https://github.com/guybedford/es-module-shims) project. Here's how it works for Bootstrap and Popper:
 
+<!-- eslint-skip -->
 ```html
 <!doctype html>
 <html lang="en">