taye/interact.js

View on GitHub
packages/@interactjs/core/Interactable.ts

Summary

Maintainability
D
2 days
Test Coverage

File Interactable.ts has 313 lines of code (exceeds 250 allowed). Consider refactoring.
Open

/* eslint-disable no-dupe-class-members */
import * as arr from '@interactjs/utils/arr'
import browser from '@interactjs/utils/browser'
import clone from '@interactjs/utils/clone'
import { getElementRect, matchesUpTo, nodeContains, trySelector } from '@interactjs/utils/domUtils'
Severity: Minor
Found in packages/@interactjs/core/Interactable.ts - About 3 hrs to fix

    Function _onOff has a Cognitive Complexity of 24 (exceeds 5 allowed). Consider refactoring.
    Open

      _onOff(
        method: OnOffMethod,
        typeArg: EventTypes,
        listenerArg?: ListenersArg | null,
        options?: any,
    Severity: Minor
    Found in packages/@interactjs/core/Interactable.ts - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Interactable has 22 functions (exceeds 20 allowed). Consider refactoring.
    Open

    export class Interactable implements Partial<Eventable> {
      /** @internal */ get _defaults(): Defaults {
        return {
          base: {},
          perAction: {},
    Severity: Minor
    Found in packages/@interactjs/core/Interactable.ts - About 2 hrs to fix

      Function unset has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
      Open

        unset() {
          if (is.string(this.target)) {
            // remove delegated events
            for (const type in this._scopeEvents.delegatedEvents) {
              const delegated = this._scopeEvents.delegatedEvents[type]
      Severity: Minor
      Found in packages/@interactjs/core/Interactable.ts - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function setPerAction has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
      Open

        setPerAction(actionName: ActionName, options: OrBoolean<Options>) {
          const defaults = this._defaults
      
          // for all the default per-action options
          for (const optionName_ in options) {
      Severity: Minor
      Found in packages/@interactjs/core/Interactable.ts - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function _onOff has 33 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        _onOff(
          method: OnOffMethod,
          typeArg: EventTypes,
          listenerArg?: ListenersArg | null,
          options?: any,
      Severity: Minor
      Found in packages/@interactjs/core/Interactable.ts - About 1 hr to fix

        Function setPerAction has 30 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          setPerAction(actionName: ActionName, options: OrBoolean<Options>) {
            const defaults = this._defaults
        
            // for all the default per-action options
            for (const optionName_ in options) {
        Severity: Minor
        Found in packages/@interactjs/core/Interactable.ts - About 1 hr to fix

          Function set has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
          Open

            set(options: OptionsArg) {
              const defaults = this._defaults
          
              if (!is.object(options)) {
                options = {}
          Severity: Minor
          Found in packages/@interactjs/core/Interactable.ts - About 35 mins to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Avoid too many return statements within this function.
          Open

              return false
          Severity: Major
          Found in packages/@interactjs/core/Interactable.ts - About 30 mins to fix

            There are no issues that match your filters.

            Category
            Status