chiiya/haven

View on GitHub
src/preferences/index.ts

Summary

Maintainability
A
1 hr
Test Coverage

Function attachListeners has 43 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  public attachListeners(): void {
    const purposes = getAllPurposes();
    const checkboxes: { [purpose: string]: HTMLInputElement } = {};
    const saveButton = <HTMLButtonElement | null>document.getElementById(
      "cookie-preferences__save"
Severity: Minor
Found in src/preferences/index.ts - About 1 hr to fix

    " should be '
    Open

              notification.style.display = "none";
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    Missing trailing comma
    Open

          "cookie-preferences__save"
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: trailing-comma

    Requires or disallows trailing commas in array and object literals, destructuring assignments, function typings, named imports and exports and function parameters.

    Notes
    • Has Fix

    Config

    One argument which is an object with the keys multiline and singleline. Both can be set to a string ("always" or "never") or an object.

    The object can contain any of the following keys: "arrays", "objects", "functions", "imports", "exports", and "typeLiterals"; each key can have one of the following values: "always", "never", and "ignore". Any missing keys will default to "ignore".

    • "multiline" checks multi-line object literals.
    • "singleline" checks single-line object literals.

    An array is considered "multiline" if its closing bracket is on a line after the last array element. The same general logic is followed for object literals, function typings, named import statements and function parameters.

    To align this rule with the ECMAScript specification that is implemented in modern JavaScript VMs, there is a third option esSpecCompliant. Set this option to true to disallow trailing comma on object and array rest and rest parameters.

    Examples
    "trailing-comma": true,[object Object]
    "trailing-comma": true,[object Object]
    Schema
    {
      "type": "object",
      "properties": {
        "multiline": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "always",
                "never"
              ]
            },
            {
              "type": "object",
              "properties": {
                "arrays": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "exports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "functions": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "imports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "objects": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "typeLiterals": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                }
              }
            }
          ]
        },
        "singleline": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "always",
                "never"
              ]
            },
            {
              "type": "object",
              "properties": {
                "arrays": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "exports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "functions": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "imports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "objects": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "typeLiterals": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                }
              }
            }
          ]
        },
        "esSpecCompliant": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }

    For more information see this page.

    " should be '
    Open

    import store from "../store";
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

        const wrapper = document.getElementById("cookie-preferences");
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

            checkbox.addEventListener("change", () => {
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

          "cookie-preferences__save"
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

    import { getAllPurposes, trans } from "../utils";
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

          saveButton.addEventListener("click", () => {
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    Missing trailing comma
    Open

          store.cookieAttributes
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: trailing-comma

    Requires or disallows trailing commas in array and object literals, destructuring assignments, function typings, named imports and exports and function parameters.

    Notes
    • Has Fix

    Config

    One argument which is an object with the keys multiline and singleline. Both can be set to a string ("always" or "never") or an object.

    The object can contain any of the following keys: "arrays", "objects", "functions", "imports", "exports", and "typeLiterals"; each key can have one of the following values: "always", "never", and "ignore". Any missing keys will default to "ignore".

    • "multiline" checks multi-line object literals.
    • "singleline" checks single-line object literals.

    An array is considered "multiline" if its closing bracket is on a line after the last array element. The same general logic is followed for object literals, function typings, named import statements and function parameters.

    To align this rule with the ECMAScript specification that is implemented in modern JavaScript VMs, there is a third option esSpecCompliant. Set this option to true to disallow trailing comma on object and array rest and rest parameters.

    Examples
    "trailing-comma": true,[object Object]
    "trailing-comma": true,[object Object]
    Schema
    {
      "type": "object",
      "properties": {
        "multiline": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "always",
                "never"
              ]
            },
            {
              "type": "object",
              "properties": {
                "arrays": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "exports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "functions": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "imports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "objects": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "typeLiterals": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                }
              }
            }
          ]
        },
        "singleline": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "always",
                "never"
              ]
            },
            {
              "type": "object",
              "properties": {
                "arrays": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "exports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "functions": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "imports": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "objects": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                },
                "typeLiterals": {
                  "type": "string",
                  "enum": [
                    "always",
                    "never",
                    "ignore"
                  ]
                }
              }
            }
          ]
        },
        "esSpecCompliant": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }

    For more information see this page.

    " should be '
    Open

    import CookieManager from "../cookies/cookie-manager";
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

            const notification = document.getElementById("cookie-notification");
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    " should be '
    Open

    import DefaultPreferences from "./default-preferences";
    Severity: Minor
    Found in src/preferences/index.ts by tslint

    Rule: quotemark

    Enforces quote character for string literals.

    Notes
    • Has Fix

    Config

    Five arguments may be optionally provided:

    • "single" enforces single quotes.
    • "double" enforces double quotes.
    • "backtick" enforces backticks.
    • "jsx-single" enforces single quotes for JSX attributes.
    • "jsx-double" enforces double quotes for JSX attributes.
    • "avoid-template" forbids single-line untagged template strings that do not contain string interpolations. Note that backticks may still be used if "avoid-escape" is enabled and both single and double quotes are present in the string (the latter option takes precedence).
    • "avoid-escape" allows you to use the "other" quotemark in cases where escaping would normally be required. For example, [true, "double", "avoid-escape"] would not report a failure on the string literal 'Hello "World"'.
    Examples
    "quotemark": true,single,avoid-escape,avoid-template
    "quotemark": true,single,jsx-double
    Schema
    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single",
          "double",
          "backtick",
          "jsx-single",
          "jsx-double",
          "avoid-escape",
          "avoid-template"
        ]
      },
      "minLength": 0,
      "maxLength": 5
    }

    For more information see this page.

    There are no issues that match your filters.

    Category
    Status