Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
XhmikosR
da17fc8a72 Fix import/extensions errors 2021-01-13 08:29:08 +02:00
XhmikosR
5085ea054f Switch to using xo directly. 2021-01-13 08:29:07 +02:00
41 changed files with 2168 additions and 407 deletions

View file

@ -1,6 +0,0 @@
**/*.min.js
**/dist/
**/vendor/
/_gh_pages/
/js/coverage/
/site/static/sw.js

View file

@ -1,59 +0,0 @@
{
"root": true,
"extends": [
"plugin:import/errors",
"plugin:import/warnings",
"plugin:unicorn/recommended",
"xo/esnext",
"xo/browser"
],
"rules": {
"capitalized-comments": "off",
"indent": [
"error",
2,
{
"MemberExpression": "off",
"SwitchCase": 1
}
],
"max-params": [
"warn",
5
],
"multiline-ternary": [
"error",
"always-multiline"
],
"new-cap": [
"error",
{
"properties": false
}
],
"no-console": "error",
"object-curly-spacing": [
"error",
"always"
],
"prefer-named-capture-group": "off",
"semi": [
"error",
"never"
],
"unicorn/consistent-function-scoping": "off",
"unicorn/explicit-length-check": "off",
"unicorn/import-index": "off",
"unicorn/no-array-callback-reference": "off",
"unicorn/no-for-loop": "off",
"unicorn/no-null": "off",
"unicorn/no-unused-properties": "error",
"unicorn/no-useless-undefined": "off",
"unicorn/prefer-dom-node-append": "off",
"unicorn/prefer-dom-node-dataset": "off",
"unicorn/prefer-dom-node-remove": "off",
"unicorn/prefer-optional-catch-binding": "off",
"unicorn/prefer-query-selector": "off",
"unicorn/prevent-abbreviations": "off"
}
}

View file

@ -1,14 +0,0 @@
{
"env": {
"browser": false,
"node": true
},
"parserOptions": {
"sourceType": "script"
},
"extends": "../.eslintrc.json",
"rules": {
"no-console": "off",
"strict": "error"
}
}

View file

@ -5,17 +5,17 @@
* --------------------------------------------------------------------------
*/
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 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 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 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'
export {
Alert,

View file

@ -5,18 +5,19 @@
* --------------------------------------------------------------------------
*/
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 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 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 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'
// eslint-disable-next-line import/no-anonymous-default-export
export default {
Alert,
Button,

View file

@ -10,10 +10,10 @@ import {
emulateTransitionEnd,
getElementFromSelector,
getTransitionDurationFromElement
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.js'
import EventHandler from './dom/event-handler.js'
import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------

View file

@ -5,7 +5,7 @@
* --------------------------------------------------------------------------
*/
import Data from './dom/data'
import Data from './dom/data.js'
/**
* ------------------------------------------------------------------------

View file

@ -5,10 +5,10 @@
* --------------------------------------------------------------------------
*/
import { defineJQueryPlugin } from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import BaseComponent from './base-component'
import { defineJQueryPlugin } from './util/index.js'
import Data from './dom/data.js'
import EventHandler from './dom/event-handler.js'
import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------

View file

@ -15,12 +15,12 @@ import {
reflow,
triggerTransitionEnd,
typeCheckConfig
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.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'
/**
* ------------------------------------------------------------------------

View file

@ -14,12 +14,12 @@ import {
isElement,
reflow,
typeCheckConfig
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.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'
/**
* ------------------------------------------------------------------------

View file

@ -5,7 +5,7 @@
* --------------------------------------------------------------------------
*/
import { getjQuery } from '../util/index'
import { getjQuery } from '../util/index.js'
/**
* ------------------------------------------------------------------------

View file

@ -15,12 +15,12 @@ import {
isRTL,
noop,
typeCheckConfig
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.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'
/**
* ------------------------------------------------------------------------

View file

@ -14,12 +14,12 @@ import {
isRTL,
reflow,
typeCheckConfig
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.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'
/**
* ------------------------------------------------------------------------

View file

@ -5,10 +5,10 @@
* --------------------------------------------------------------------------
*/
import { defineJQueryPlugin } from './util/index'
import Data from './dom/data'
import SelectorEngine from './dom/selector-engine'
import Tooltip from './tooltip'
import { defineJQueryPlugin } from './util/index.js'
import Data from './dom/data.js'
import SelectorEngine from './dom/selector-engine.js'
import Tooltip from './tooltip.js'
/**
* ------------------------------------------------------------------------

View file

@ -11,12 +11,12 @@ import {
getUID,
isElement,
typeCheckConfig
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.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'
/**
* ------------------------------------------------------------------------

View file

@ -11,11 +11,11 @@ import {
getElementFromSelector,
getTransitionDurationFromElement,
reflow
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.js'
import EventHandler from './dom/event-handler.js'
import SelectorEngine from './dom/selector-engine.js'
import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------

View file

@ -11,11 +11,11 @@ import {
getTransitionDurationFromElement,
reflow,
typeCheckConfig
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import BaseComponent from './base-component'
} from './util/index.js'
import Data from './dom/data.js'
import EventHandler from './dom/event-handler.js'
import Manipulator from './dom/manipulator.js'
import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------

View file

@ -17,16 +17,16 @@ import {
isRTL,
noop,
typeCheckConfig
} from './util/index'
} from './util/index.js'
import {
DefaultAllowlist,
sanitizeHtml
} from './util/sanitizer'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
} from './util/sanitizer.js'
import Data from './dom/data.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'
/**
* ------------------------------------------------------------------------

View file

@ -1,5 +1,5 @@
import Tooltip from '../../dist/tooltip'
import '../../dist/carousel'
import Tooltip from '../../dist/tooltip.js'
import '../../dist/carousel.js' // eslint-disable-line import/no-unassigned-import
window.addEventListener('load', () => {
[].concat(...document.querySelectorAll('[data-bs-toggle="tooltip"]'))

View file

@ -1,16 +0,0 @@
{
"root": true,
"extends": [
"../../../.eslintrc.json"
],
"overrides": [
{
"files": [
"**/*.spec.js"
],
"env": {
"jasmine": true
}
}
]
}

View file

@ -1,8 +1,8 @@
import Alert from '../../src/alert'
import { getTransitionDurationFromElement } from '../../src/util/index'
import Alert from '../../src/alert.js'
import { getTransitionDurationFromElement } from '../../src/util/index.js'
/** Test helpers */
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Alert', () => {
let fixtureEl

View file

@ -1,11 +1,11 @@
import Button from '../../src/button'
import Button from '../../src/button.js'
/** Test helpers */
import {
getFixture,
clearFixture,
jQueryMock
} from '../helpers/fixture'
} from '../helpers/fixture.js'
describe('Button', () => {
let fixtureEl

View file

@ -1,8 +1,8 @@
import Carousel from '../../src/carousel'
import EventHandler from '../../src/dom/event-handler'
import Carousel from '../../src/carousel.js'
import EventHandler from '../../src/dom/event-handler.js'
/** Test helpers */
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture.js'
describe('Carousel', () => {
const { Simulator, PointerEvent } = window

View file

@ -1,8 +1,8 @@
import Collapse from '../../src/collapse'
import EventHandler from '../../src/dom/event-handler'
import Collapse from '../../src/collapse.js'
import EventHandler from '../../src/dom/event-handler.js'
/** Test helpers */
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Collapse', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import Data from '../../../src/dom/data'
import Data from '../../../src/dom/data.js'
/** Test helpers */
import { getFixture, clearFixture } from '../../helpers/fixture'
import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('Data', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import EventHandler from '../../../src/dom/event-handler'
import EventHandler from '../../../src/dom/event-handler.js'
/** Test helpers */
import { getFixture, clearFixture } from '../../helpers/fixture'
import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('EventHandler', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import Manipulator from '../../../src/dom/manipulator'
import Manipulator from '../../../src/dom/manipulator.js'
/** Test helpers */
import { getFixture, clearFixture } from '../../helpers/fixture'
import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('Manipulator', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import SelectorEngine from '../../../src/dom/selector-engine'
import SelectorEngine from '../../../src/dom/selector-engine.js'
/** Test helpers */
import { getFixture, clearFixture } from '../../helpers/fixture'
import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('SelectorEngine', () => {
let fixtureEl

View file

@ -1,8 +1,8 @@
import Dropdown from '../../src/dropdown'
import EventHandler from '../../src/dom/event-handler'
import Dropdown from '../../src/dropdown.js'
import EventHandler from '../../src/dom/event-handler.js'
/** Test helpers */
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture.js'
describe('Dropdown', () => {
let fixtureEl

View 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 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 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 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'
/** Test helpers */
import { getFixture, clearFixture } from '../helpers/fixture'
import { getFixture, clearFixture } from '../helpers/fixture.js'
describe('jQuery', () => {
let fixtureEl

View file

@ -1,8 +1,8 @@
import Modal from '../../src/modal'
import EventHandler from '../../src/dom/event-handler'
import Modal from '../../src/modal.js'
import EventHandler from '../../src/dom/event-handler.js'
/** Test helpers */
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture.js'
describe('Modal', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import Popover from '../../src/popover'
import Popover from '../../src/popover.js'
/** Test helpers */
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Popover', () => {
let fixtureEl

View file

@ -1,9 +1,9 @@
import ScrollSpy from '../../src/scrollspy'
import Manipulator from '../../src/dom/manipulator'
import EventHandler from '../../src/dom/event-handler'
import ScrollSpy from '../../src/scrollspy.js'
import Manipulator from '../../src/dom/manipulator.js'
import EventHandler from '../../src/dom/event-handler.js'
/** Test helpers */
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture.js'
describe('ScrollSpy', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import Tab from '../../src/tab'
import Tab from '../../src/tab.js'
/** Test helpers */
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Tab', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import Toast from '../../src/toast'
import Toast from '../../src/toast.js'
/** Test helpers */
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Toast', () => {
let fixtureEl

View file

@ -1,9 +1,9 @@
import Tooltip from '../../src/tooltip'
import EventHandler from '../../src/dom/event-handler'
import { noop } from '../../src/util/index'
import Tooltip from '../../src/tooltip.js'
import EventHandler from '../../src/dom/event-handler.js'
import { noop } from '../../src/util/index.js'
/** Test helpers */
import { getFixture, clearFixture, jQueryMock, createEvent } from '../helpers/fixture'
import { getFixture, clearFixture, jQueryMock, createEvent } from '../helpers/fixture.js'
describe('Tooltip', () => {
let fixtureEl

View file

@ -1,7 +1,7 @@
import * as Util from '../../../src/util/index'
import * as Util from '../../../src/util/index.js'
/** Test helpers */
import { getFixture, clearFixture } from '../../helpers/fixture'
import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('Util', () => {
let fixtureEl

View file

@ -1,4 +1,4 @@
import { DefaultAllowlist, sanitizeHtml } from '../../../src/util/sanitizer'
import { DefaultAllowlist, sanitizeHtml } from '../../../src/util/sanitizer.js'
describe('Sanitizer', () => {
describe('sanitizeHtml', () => {

2065
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -41,7 +41,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 .",
"js-lint": "xo",
"js-minify": "npm-run-all --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",
@ -112,10 +112,6 @@
"bundlewatch": "^0.3.1",
"clean-css-cli": "^4.3.0",
"cross-env": "^7.0.3",
"eslint": "^7.17.0",
"eslint-config-xo": "^0.34.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-unicorn": "^25.0.1",
"find-unused-sass-variables": "^3.1.0",
"glob": "^7.1.6",
"hammer-simulator": "0.0.1",
@ -145,7 +141,8 @@
"stylelint": "^13.8.0",
"stylelint-config-twbs-bootstrap": "^2.1.0",
"terser": "5.1.0",
"vnu-jar": "20.6.30"
"vnu-jar": "20.6.30",
"xo": "^0.37.1"
},
"files": [
"dist/{css,js}/*.{css,js,map}",
@ -172,5 +169,89 @@
"peerDependencies": {
"@popperjs/core": "^2.6.0"
}
},
"xo": {
"envs": [
"browser"
],
"esnext": true,
"semicolon": false,
"space": 2,
"ignores": [
"**/*.min.js",
"**/dist/**",
"**/vendor/**",
"site/static/sw.js"
],
"rules": {
"capitalized-comments": "off",
"import/no-mutable-exports": "off",
"import/no-useless-path-segments": "off",
"max-params": [
"warn",
5
],
"new-cap": [
"error",
{
"properties": false
}
],
"no-console": "error",
"object-curly-spacing": [
"error",
"always"
],
"unicorn/consistent-function-scoping": "off",
"unicorn/explicit-length-check": "off",
"unicorn/import-index": "off",
"unicorn/no-array-callback-reference": "off",
"unicorn/no-for-loop": "off",
"unicorn/no-null": "off",
"unicorn/no-unused-properties": "error",
"unicorn/prefer-array-find": "off",
"unicorn/prefer-dom-node-append": "off",
"unicorn/prefer-dom-node-dataset": "off",
"unicorn/prefer-dom-node-remove": "off",
"unicorn/prefer-optional-catch-binding": "off",
"unicorn/prefer-query-selector": "off",
"unicorn/prevent-abbreviations": "off"
},
"overrides": [
{
"files": "build/*.js",
"envs": [
"node"
],
"parserOptions": {
"sourceType": "script"
},
"rules": {
"no-console": "off",
"strict": "error"
}
},
{
"files": "js/tests/unit/**/*.spec.js",
"envs": [
"jasmine"
]
},
{
"files": "site/**/*.js",
"esnext": false,
"parserOptions": {
"ecmaVersion": 5,
"sourceType": "script"
},
"rules": {
"no-new": "off",
"strict": [
"error",
"function"
]
}
}
]
}
}

View file

@ -1,43 +0,0 @@
{
"root": true,
"parserOptions": {
"ecmaVersion": 5,
"sourceType": "script"
},
"extends": [
"plugin:unicorn/recommended",
"xo",
"xo/browser"
],
"rules": {
"capitalized-comments": "off",
"indent": [
"error",
2,
{
"MemberExpression": "off",
"SwitchCase": 1
}
],
"multiline-ternary": [
"error",
"always-multiline"
],
"no-new": "off",
"object-curly-spacing": [
"error",
"always"
],
"semi": [
"error",
"never"
],
"strict": "error",
"unicorn/no-for-loop": "off",
"unicorn/no-null": "off",
"unicorn/prefer-dom-node-append": "off",
"unicorn/prefer-dom-node-dataset": "off",
"unicorn/prefer-query-selector": "off",
"unicorn/prevent-abbreviations": "off"
}
}