Skip to content

Commit c9144d7

Browse files
committed
simplify eslint configs, modernize eslint config for docs js
1 parent 2208c11 commit c9144d7

17 files changed

Lines changed: 33 additions & 296 deletions

File tree

.eslintrc.json

Lines changed: 0 additions & 254 deletions
This file was deleted.

eslint.config.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,12 @@ const localRules = {
9595
'unicorn/no-unused-properties': 'error',
9696
'unicorn/numeric-separators-style': 'off',
9797
'unicorn/prefer-array-flat': 'off',
98-
'unicorn/prefer-at': 'off',
98+
'unicorn/prefer-at': 'error',
9999
'unicorn/prefer-dom-node-dataset': 'off',
100100
'unicorn/prefer-global-this': 'off',
101101
'unicorn/prefer-module': 'off',
102102
'unicorn/prefer-query-selector': 'off',
103-
'unicorn/prefer-spread': 'off',
103+
'unicorn/prefer-spread': 'error',
104104
'unicorn/prefer-string-raw': 'off',
105105
'unicorn/prefer-string-replace-all': 'off',
106106
'unicorn/prefer-structured-clone': 'off',
@@ -266,17 +266,14 @@ const eslintConfig = [
266266
}
267267
},
268268

269-
// site/** — browser, script mode, older ecmaVersion
269+
// site/** — browser, script mode
270270
{
271271
files: ['site/**'],
272272
languageOptions: {
273273
globals: {
274274
...globals.browser
275275
},
276-
sourceType: 'script',
277-
parserOptions: {
278-
ecmaVersion: 2019
279-
}
276+
sourceType: 'script'
280277
},
281278
rules: {
282279
'no-new': 'off',
@@ -296,10 +293,7 @@ const eslintConfig = [
296293
'site/src/plugins/*.js'
297294
],
298295
languageOptions: {
299-
sourceType: 'module',
300-
parserOptions: {
301-
ecmaVersion: 2020
302-
}
296+
sourceType: 'module'
303297
},
304298
// These files may have eslint-disable directives for the old import plugin
305299
linterOptions: {
@@ -322,10 +316,7 @@ const eslintConfig = [
322316
'site/src/assets/examples/sidebars/sidebars.js'
323317
],
324318
languageOptions: {
325-
sourceType: 'module',
326-
parserOptions: {
327-
ecmaVersion: 2020
328-
}
319+
sourceType: 'module'
329320
},
330321
rules: {
331322
'import/no-unresolved': 'off'

js/src/combobox.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ class Combobox extends BaseComponent {
359359

360360
const items = this._getVisibleItems()
361361
if (items.length > 0) {
362-
const target = key === ARROW_DOWN_KEY ? items[0] : items[items.length - 1]
362+
const target = key === ARROW_DOWN_KEY ? items[0] : items.at(-1)
363363
target.focus()
364364
}
365365

@@ -404,7 +404,7 @@ class Combobox extends BaseComponent {
404404
event.preventDefault()
405405
const items = this._getVisibleItems()
406406
if (items.length > 0) {
407-
const targetItem = key === HOME_KEY ? items[0] : items[items.length - 1]
407+
const targetItem = key === HOME_KEY ? items[0] : items.at(-1)
408408
targetItem.focus()
409409
}
410410

js/src/dom/data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default {
2323
// can be removed later when multiple key/instances are fine to be used
2424
if (!instanceMap.has(key) && instanceMap.size !== 0) {
2525
// eslint-disable-next-line no-console
26-
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)
26+
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${[...instanceMap.keys()][0]}.`)
2727
return
2828
}
2929

js/src/dom/selector-engine.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ const getSelector = element => {
3434

3535
const SelectorEngine = {
3636
find(selector, element = document.documentElement) {
37-
return [].concat(...Element.prototype.querySelectorAll.call(element, selector))
37+
return [...Element.prototype.querySelectorAll.call(element, selector)]
3838
},
3939

4040
findOne(selector, element = document.documentElement) {
4141
return Element.prototype.querySelector.call(element, selector)
4242
},
4343

4444
children(element, selector) {
45-
return [].concat(...element.children).filter(child => child.matches(selector))
45+
return [...element.children].filter(child => child.matches(selector))
4646
},
4747

4848
parents(element, selector) {

js/src/menu.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ class Menu extends BaseComponent {
186186
this._createFloating()
187187

188188
if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
189-
for (const element of [].concat(...document.body.children)) {
189+
for (const element of document.body.children) {
190190
EventHandler.on(element, 'mouseover', noop)
191191
}
192192
}
@@ -249,7 +249,7 @@ class Menu extends BaseComponent {
249249
this._closeAllSubmenus()
250250

251251
if ('ontouchstart' in document.documentElement) {
252-
for (const element of [].concat(...document.body.children)) {
252+
for (const element of document.body.children) {
253253
EventHandler.off(element, 'mouseover', noop)
254254
}
255255
}
@@ -837,7 +837,7 @@ class Menu extends BaseComponent {
837837
.filter(element => isVisible(element))
838838

839839
if (items.length) {
840-
const targetItem = key === HOME_KEY ? items[0] : items[items.length - 1]
840+
const targetItem = key === HOME_KEY ? items[0] : items.at(-1)
841841
targetItem.focus()
842842
}
843843

0 commit comments

Comments
 (0)