You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			743 B
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			30 lines
		
	
	
		
			743 B
		
	
	
	
		
			TypeScript
		
	
// tslint:disable no-console
 | 
						|
 | 
						|
import { join } from 'path';
 | 
						|
 | 
						|
import { fromPairs, groupBy, map } from 'lodash';
 | 
						|
 | 
						|
import { ExceptionType } from './types';
 | 
						|
import { loadJSON } from './util';
 | 
						|
 | 
						|
const exceptionsPath = join(__dirname, 'exceptions.json');
 | 
						|
const exceptions: Array<ExceptionType> = loadJSON(exceptionsPath);
 | 
						|
const byRule = groupBy(exceptions, 'rule');
 | 
						|
 | 
						|
const byRuleThenByCategory = fromPairs(
 | 
						|
  map(byRule, (list, ruleName) => {
 | 
						|
    const byCategory = groupBy(list, 'reasonCategory');
 | 
						|
 | 
						|
    return [
 | 
						|
      ruleName,
 | 
						|
      fromPairs(
 | 
						|
        map(byCategory, (innerList, categoryName) => {
 | 
						|
          return [categoryName, innerList.length];
 | 
						|
        })
 | 
						|
      ),
 | 
						|
    ];
 | 
						|
  })
 | 
						|
);
 | 
						|
 | 
						|
console.log(JSON.stringify(byRuleThenByCategory, null, '  '));
 |