export function computeQuickFixes()

in ui-modules/blueprint-composer/app/components/quick-fix/quick-fix.js [29:82]


export function computeQuickFixes(blueprintService, allIssues) {
    if (!allIssues) allIssues = blueprintService.getAllIssues();
    if (!allIssues) allIssues = {};
    if (!allIssues.errors) allIssues.errors = {};

    allIssues.errors.byMessage = {};
    Object.values(allIssues.errors.byEntity).forEach(list => {
        list.forEach(issue => {
            let key = issue.group+":"+issue.ref+":"+issue.message;
            let v = allIssues.errors.byMessage[key];
            if (!v) {
                v = allIssues.errors.byMessage[key] = {
                    group: issue.group,
                    ref: issue.ref,
                    message: issue.message,
                    issues: [],
                    quickFixes: {},
                };
            }
            let issueO = {
                issue,
                //quickFixes: {},
            }
            v.issues.push(issueO);

            computeQuickFixesForIssue(issue, issue.entity, blueprintService, v.quickFixes)
        });
    });

    allIssues.warnings.byMessage = {};
    Object.values(allIssues.warnings.byEntity).forEach(list => {
        list.forEach(issue => {
            let key = issue.group+":"+issue.ref+":"+issue.message;
            let v = allIssues.warnings.byMessage[key];
            if (!v) {
                v = allIssues.warnings.byMessage[key] = {
                    group: issue.group,
                    ref: issue.ref,
                    message: issue.message,
                    issues: [],
                    quickFixes: {},
                };
            }
            let issueO = {
                issue,
                //quickFixes: {},
            }
            v.issues.push(issueO);

            computeQuickFixesForIssue(issue, issue.entity, blueprintService, v.quickFixes)
        });
    });
    return allIssues;
}