Sonarqube vs eslint rules (named function vs anonymous function)

I've written this code for a mongoose schema:

localeTypesSchema.statics.findAndModify =
    function findAndModify(query, sort, update, options, callback) {
        const promised = q.nbind(this.collection.findAndModify, this.collection);
        return promised(query || {}, sort || [], update || {}, options, callback);
    };

SonarQube is complaining (major, code smell) about Make this function anonymous by removing its name (cross-browser, user-experience),

If I remove the name then eslint простирающийся airbnb complains (warning) about [eslint] Missing function expression name. (func-names),

I can't transform it to an arrow function as it makes use of this, а также this should be bind to function caller and not to scope of arrow function.

Как мне написать код?

1 ответ

Решение

Оба варианта могут быть действительными: прочитайте описание правила SonarQube и правила eslint. На самом деле, правило eslint может быть сконфигурировано для обеспечения одного или другого выбора. Инструменты здесь, чтобы помочь, если вы хотите применить одно правило.

Другие вопросы по тегам