NodeBB/NodeBB

View on GitHub
public/src/ajaxify.js

Summary

Maintainability
C
7 hrs
Test Coverage

File ajaxify.js has 501 lines of code (exceeds 500 allowed). Consider refactoring.
Open

'use strict';

const benchpress = require('benchpressjs');
const translator = require('./modules/translator');
const alerts = require('./modules/alerts');
Severity: Major
Found in public/src/ajaxify.js - About 2 hrs to fix

    Function ajaxifyAnchors has 77 lines of code (exceeds 75 allowed). Consider refactoring.
    Open

        function ajaxifyAnchors() {
            function hrefEmpty(href) {
                // eslint-disable-next-line no-script-url
                return href === undefined || href === '' || href === 'javascript:;';
            }
    Severity: Major
    Found in public/src/ajaxify.js - About 1 hr to fix

      Avoid deeply nested control flow statements.
      Open

                                  if (!safeUrls.length || !safeUrls.some(function (url) { return href.indexOf(url) !== -1; })) {
                                      ajaxify.go('outgoing?url=' + encodeURIComponent(href));
                                      e.preventDefault();
                                  }
      Severity: Major
      Found in public/src/ajaxify.js - About 45 mins to fix

        Avoid deeply nested control flow statements.
        Open

                            if (data.responseJSON.startsWith('http://') || data.responseJSON.startsWith('https://')) {
                                window.location.href = data.responseJSON;
                            } else {
                                ajaxify.go(data.responseJSON.slice(1), callback, quiet);
                            }
        Severity: Major
        Found in public/src/ajaxify.js - About 45 mins to fix

          Avoid too many return statements within this function.
          Open

                          return;
          Severity: Major
          Found in public/src/ajaxify.js - About 30 mins to fix

            Avoid too many return statements within this function.
            Open

                            return;
            Severity: Major
            Found in public/src/ajaxify.js - About 30 mins to fix

              Avoid too many return statements within this function.
              Open

                              return e.preventDefault();
              Severity: Major
              Found in public/src/ajaxify.js - About 30 mins to fix

                Avoid too many return statements within this function.
                Open

                                    return;
                Severity: Major
                Found in public/src/ajaxify.js - About 30 mins to fix

                  Avoid too many return statements within this function.
                  Open

                                  return e.preventDefault();
                  Severity: Major
                  Found in public/src/ajaxify.js - About 30 mins to fix

                    There are no issues that match your filters.

                    Category
                    Status