Files
Desktop/ts/util/lint/analyze_exceptions.node.ts
Fedor Indutny 44076ece79 Rename files
2025-10-16 23:45:44 -07:00

33 lines
883 B
TypeScript

// Copyright 2018 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import lodash from 'lodash';
import { join } from 'node:path';
import type { ExceptionType } from './types.std.js';
import { loadJSON } from './util.node.js';
const { fromPairs, groupBy, map } = lodash;
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];
})
),
];
})
);
// eslint-disable-next-line no-console
console.log(JSON.stringify(byRuleThenByCategory, null, ' '));