function checkGrouped()

in rules/module-dependency-order.js [102:170]


        function checkGrouped(deps) {
            var lastCorrect;
            var group = 'standard';
            deps.elements.forEach(function loop(node) {
                if (!checkLiteral(node)) {
                    return;
                }
                var value = node.value || node.name;
                if (lastCorrect === undefined) {
                    lastCorrect = value;
                    if (isCustomModule(value)) {
                        group = 'custom';
                    } else if (standard.indexOf(value) === -1) {
                        group = 'third party';
                    }
                    return;
                }
                if (group === 'standard') {
                    if (isStandardModule(value)) {
                        if (lastCorrect.localeCompare(value) > 0) {
                            context.report(node, '{{current}} should be sorted before {{last}}', {
                                current: value,
                                last: lastCorrect
                            });
                        } else {
                            lastCorrect = value;
                        }
                    } else {
                        if (isCustomModule(value)) {
                            group = 'custom';
                        } else {
                            group = 'third party';
                        }
                        lastCorrect = value;
                    }
                }
                if (group === 'third party') {
                    if (isStandardModule(value)) {
                        context.report(node, '{{current}} is a standard module and should be sorted before {{last}}', {
                            current: value,
                            last: lastCorrect
                        });
                    } else if (isCustomModule(value)) {
                        group = 'custom';
                        lastCorrect = value;
                    } else if (lastCorrect.localeCompare(value) > 0) {
                        context.report(node, '{{current}} should be sorted before {{last}}', {
                            current: value,
                            last: lastCorrect
                        });
                    } else {
                        lastCorrect = value;
                    }
                }
                if (group === 'custom') {
                    if (isStandardModule(value)) {
                        context.report(node, '{{current}} is a standard module and should be sorted before {{last}}', {
                            current: value,
                            last: lastCorrect
                        });
                    } else if (!isCustomModule(value)) {
                        context.report(node, '{{current}} is a third party module and should be sorted before {{last}}', {
                            current: value,
                            last: lastCorrect
                        });
                    }
                }
            });
        }