Showing 56 of 82 total issues
Function formatOperatorValue
has 40 lines of code (exceeds 25 allowed). Consider refactoring. Open
this.formatOperatorValue = (operator, value, isTextField = false) => {
switch (operator) {
case 'not':
return { [this.OPERATORS.NOT]: value };
case 'greater_than':
Function HasManyDissociator
has 38 lines of code (exceeds 25 allowed). Consider refactoring. Open
function HasManyDissociator(model, association, options, params, data) {
const OPERATORS = Operators.getInstance(options);
const isDelete = Boolean(params.delete);
this.perform = () => {
Function perform
has 37 lines of code (exceeds 25 allowed). Consider refactoring. Open
this.perform = () => {
const schema = {
field: column.fieldName,
type: new ApimapFieldTypeDetector(column, options).perform(),
// NOTICE: Necessary only for fields with different field and database
Function normalizeInclude
has 36 lines of code (exceeds 25 allowed). Consider refactoring. Open
function normalizeInclude(model, include) {
if (include.sequelize) {
return {
model: include,
as: Object
Function removeDuplicateAssociations
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring. Open
function removeDuplicateAssociations(model, includeList) {
// Remove duplicates
includeList.sort((include1, include2) => (include1.as < include2.as ? -1 : 1));
for (let i = 1; i < includeList.length; i += 1) {
if (includeList[i - 1].as === includeList[i].as) {
- Read upRead up
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 perform
has 34 lines of code (exceeds 25 allowed). Consider refactoring. Open
this.perform = () => {
const associatedIds = _.map(data.data, (value) => value.id);
return orm.findRecord(model, params.recordId)
.then((record) => {
let removeAssociation = false;
Function getGroupByDateFieldFormatedForSQLite
has 32 lines of code (exceeds 25 allowed). Consider refactoring. Open
function getGroupByDateFieldFormatedForSQLite(currentTimeRange) {
switch (currentTimeRange) {
case 'day': {
return options.Sequelize.fn(
'STRFTIME',
Function perform
has 31 lines of code (exceeds 25 allowed). Consider refactoring. Open
this.perform = async () => {
const { timezone } = params;
const parentSequelizeOptions = await getSequelizeOptionsForModel(parentModel, user, timezone);
const childSequelizeOptions = await getSequelizeOptionsForModel(childModel, user, timezone);
Function removeDuplicateAssociations
has 29 lines of code (exceeds 25 allowed). Consider refactoring. Open
function removeDuplicateAssociations(model, includeList) {
// Remove duplicates
includeList.sort((include1, include2) => (include1.as < include2.as ? -1 : 1));
for (let i = 1; i < includeList.length; i += 1) {
if (includeList[i - 1].as === includeList[i].as) {
Function perform
has 29 lines of code (exceeds 25 allowed). Consider refactoring. Open
async perform() {
const { timezone } = this._params;
const scopeFilters = await scopeManager.getScopeForUser(this._user, this._model.name, true);
const queryOptions = new QueryOptions(this._model);
Function QueryBuilder
has 29 lines of code (exceeds 25 allowed). Consider refactoring. Open
function QueryBuilder() {
this.getIncludes = (modelForIncludes, fieldNamesRequested) => {
const includes = [];
Object.values(modelForIncludes.associations)
Function getGroupByDateFieldFormatedForMSSQL
has 27 lines of code (exceeds 25 allowed). Consider refactoring. Open
function getGroupByDateFieldFormatedForMSSQL(currentTimeRange) {
const groupByDateFieldFormated = `[${groupByDateField.replace('.', '].[')}]`;
switch (currentTimeRange) {
case 'day':
return options.Sequelize.fn(
Function perform
has 27 lines of code (exceeds 25 allowed). Consider refactoring. Open
async perform() {
// buildInstance
const recordCreated = this.model.build(this.body);
// handleAssociationsBeforeSave
Function getGroupByDateFieldFormatedForMySQL
has 27 lines of code (exceeds 25 allowed). Consider refactoring. Open
function getGroupByDateFieldFormatedForMySQL(currentTimeRange) {
const groupByDateFieldFormated = `\`${groupByDateField.replace('.', '`.`')}\``;
switch (currentTimeRange) {
case 'day':
return options.Sequelize.fn(
Function getIncludes
has 27 lines of code (exceeds 25 allowed). Consider refactoring. Open
this.getIncludes = (modelForIncludes, fieldNamesRequested) => {
const includes = [];
Object.values(modelForIncludes.associations)
.filter((association) => [HAS_ONE, BELONGS_TO].includes(association.associationType))
Function _buildQueryOptions
has 26 lines of code (exceeds 25 allowed). Consider refactoring. Open
async _buildQueryOptions(buildOptions = {}) {
const { forCount, tableAlias } = buildOptions;
const {
fields, filters,
search, searchExtended, segment, segmentQuery, timezone,
Function perform
has 26 lines of code (exceeds 25 allowed). Consider refactoring. Open
this.perform = async () => {
const { filter, timezone } = params;
const scopeFilters = await scopeManager.getScopeForUser(user, model.name, true);
const queryOptions = new QueryOptions(model, { includeRelations: true });
Function PieStatGetter
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
function PieStatGetter(model, params, options, user) {
const needsDateOnlyFormating = isVersionLessThan(options.Sequelize, '4.0.0');
const schema = Schemas.schemas[model.name];
let associationSplit;
- Read upRead up
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 deeply nested control flow statements. Open
} else if (field.type === 'String') {
condition = getStringExtendedCondition(
modelAssociation.rawAttributes[field.field], params.search, column,
);
hasExtendedConditions = !!condition;
Function search
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
async search(search, searchExtended) {
if (!search) return [];
const options = { Sequelize: this._Sequelize };
const fieldNames = this._requestedFields.size ? [...this._requestedFields] : null;
- Read upRead up
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"