ultimate-comparisons/ultimate-comparison-BASE

View on GitHub

Showing 109 of 111 total issues

" should be '
Open

import { InputInterface } from "../input-interface";

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.

The selector should be kebab-cased and include a dash (https://angular.io/guide/styleguide#style-05-02)
Open

    selector: 'referencestable',

Rule: component-selector

Component selectors should follow given naming rules.

See more at https://angular.io/guide/styleguide#style-02-07, https://angular.io/guide/styleguide#style-05-02 and https://angular.io/guide/styleguide#style-05-03.

Rationale
  • Consistent conventions make it easy to quickly identify and reference assets of different types.
  • Makes it easier to promote and share the component in other apps.
  • Components are easy to identify in the DOM.
  • Keeps the element names consistent with the specification for Custom Elements.
  • Components have templates containing HTML and optional Angular template syntax.
  • They display content. Developers place components on the page as they would native HTML elements and WebComponents.
  • It is easier to recognize that a symbol is a component by looking at the template's HTML.
Notes
  • TypeScript Only

Config

Options accept three obligatory items as an array: 1. element or attribute forces components to be used as either elements, attributes, or both (not recommended) 2. A single prefix (string) or array of prefixes (strings) which have to be used in component selectors. 3. kebab-case or camelCase allows you to pick a case.

Examples
"component-selector": true,element,my-prefix,kebab-case
"component-selector": true,element,ng,ngx,kebab-case
"component-selector": true,attribute,myPrefix,camelCase
"component-selector": true,element,attribute,myPrefix,camelCase
Schema
{
  "items": [
    {
      "enum": [
        "attribute",
        "element"
      ]
    },
    {
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    {
      "enum": [
        "camelCase",
        "kebab-case"
      ]
    }
  ],
  "maxLength": 3,
  "minLength": 3,
  "type": "array"
}

For more information see this page.

" should be '
Open

import { SanitizerPipe } from "./sanitizer-pipe/sanitizer.pipe";

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 radix parameter
Open

                            a = b = Number.parseInt(splits[0]);
Severity: Minor
Found in src/app/redux/uc.reducers.ts by tslint

Rule: radix

Requires the radix parameter to be specified when calling parseInt.

Rationale

From MDN:

Always specify this parameter to eliminate reader confusion and to guarantee predictable behavior. Different implementations produce different results when a radix is not specified, usually defaulting the value to 10.

Config

Not configurable.

Examples
"radix": true

For more information see this page.

Missing radix parameter
Open

                            b = Number.parseInt(splits[2]);
Severity: Minor
Found in src/app/redux/uc.reducers.ts by tslint

Rule: radix

Requires the radix parameter to be specified when calling parseInt.

Rationale

From MDN:

Always specify this parameter to eliminate reader confusion and to guarantee predictable behavior. Different implementations produce different results when a radix is not specified, usually defaulting the value to 10.

Config

Not configurable.

Examples
"radix": true

For more information see this page.

The selector should be prefixed by "uc" (https://angular.io/guide/styleguide#style-02-07)
Open

    selector: 'comparison-details',

Rule: component-selector

Component selectors should follow given naming rules.

See more at https://angular.io/guide/styleguide#style-02-07, https://angular.io/guide/styleguide#style-05-02 and https://angular.io/guide/styleguide#style-05-03.

Rationale
  • Consistent conventions make it easy to quickly identify and reference assets of different types.
  • Makes it easier to promote and share the component in other apps.
  • Components are easy to identify in the DOM.
  • Keeps the element names consistent with the specification for Custom Elements.
  • Components have templates containing HTML and optional Angular template syntax.
  • They display content. Developers place components on the page as they would native HTML elements and WebComponents.
  • It is easier to recognize that a symbol is a component by looking at the template's HTML.
Notes
  • TypeScript Only

Config

Options accept three obligatory items as an array: 1. element or attribute forces components to be used as either elements, attributes, or both (not recommended) 2. A single prefix (string) or array of prefixes (strings) which have to be used in component selectors. 3. kebab-case or camelCase allows you to pick a case.

Examples
"component-selector": true,element,my-prefix,kebab-case
"component-selector": true,element,ng,ngx,kebab-case
"component-selector": true,attribute,myPrefix,camelCase
"component-selector": true,element,attribute,myPrefix,camelCase
Schema
{
  "items": [
    {
      "enum": [
        "attribute",
        "element"
      ]
    },
    {
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    {
      "enum": [
        "camelCase",
        "kebab-case"
      ]
    }
  ],
  "maxLength": 3,
  "minLength": 3,
  "type": "array"
}

For more information see this page.

Type boolean trivially inferred from a boolean literal, remove type annotation
Open

    @Input() elementDisplayAll: boolean = true;

Rule: no-inferrable-types

Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean.

Rationale

Explicit types where they can be easily inferred by the compiler make code more verbose.

Notes
  • TypeScript Only
  • Has Fix

Config

Two arguments may be optionally provided:

  • ignore-params allows specifying an inferrable type annotation for function params. This can be useful when combining with the typedef rule.
  • ignore-properties allows specifying an inferrable type annotation for class properties.
Examples
"no-inferrable-types": true
"no-inferrable-types": true,ignore-params
"no-inferrable-types": true,ignore-params,ignore-properties
Schema
{
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "ignore-params",
      "ignore-properties"
    ]
  },
  "minLength": 0,
  "maxLength": 2
}

For more information see this page.

== should be ===
Open

                if (footnote.count == 1) {

Rule: triple-equals

Requires === and !== in place of == and !=.

Config

Two arguments may be optionally provided:

  • "allow-null-check" allows == and != when comparing to null.
  • "allow-undefined-check" allows == and != when comparing to undefined.
Examples
"triple-equals": true
"triple-equals": true,allow-null-check
"triple-equals": true,allow-undefined-check
Schema
{
  "type": "array",
  "items": {
    "type": "string",
    "enum": [
      "allow-null-check",
      "allow-undefined-check"
    ]
  },
  "minLength": 0,
  "maxLength": 2
}

For more information see this page.

The selector should be kebab-cased and include a dash (https://angular.io/guide/styleguide#style-05-02)
Open

    selector: 'pitem',

Rule: component-selector

Component selectors should follow given naming rules.

See more at https://angular.io/guide/styleguide#style-02-07, https://angular.io/guide/styleguide#style-05-02 and https://angular.io/guide/styleguide#style-05-03.

Rationale
  • Consistent conventions make it easy to quickly identify and reference assets of different types.
  • Makes it easier to promote and share the component in other apps.
  • Components are easy to identify in the DOM.
  • Keeps the element names consistent with the specification for Custom Elements.
  • Components have templates containing HTML and optional Angular template syntax.
  • They display content. Developers place components on the page as they would native HTML elements and WebComponents.
  • It is easier to recognize that a symbol is a component by looking at the template's HTML.
Notes
  • TypeScript Only

Config

Options accept three obligatory items as an array: 1. element or attribute forces components to be used as either elements, attributes, or both (not recommended) 2. A single prefix (string) or array of prefixes (strings) which have to be used in component selectors. 3. kebab-case or camelCase allows you to pick a case.

Examples
"component-selector": true,element,my-prefix,kebab-case
"component-selector": true,element,ng,ngx,kebab-case
"component-selector": true,attribute,myPrefix,camelCase
"component-selector": true,element,attribute,myPrefix,camelCase
Schema
{
  "items": [
    {
      "enum": [
        "attribute",
        "element"
      ]
    },
    {
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    {
      "enum": [
        "camelCase",
        "kebab-case"
      ]
    }
  ],
  "maxLength": 3,
  "minLength": 3,
  "type": "array"
}

For more information see this page.

Severity
Category
Status
Source
Language