@secretlint/core
Version:
Core library for @secretlint.
36 lines (34 loc) • 1.55 kB
text/typescript
import { SecretLintCoreIgnoreMessage, SecretLintCoreResultMessage } from "@secretlint/types";
import { filterIgnoredMessages } from "./filter-ignored-process.js";
import { createMessageProcessor } from "./MessageProcessManager.js";
import { filterDuplicatedMessages } from "./filter-duplicated-process.js";
import { sortMessagesByLocation } from "./sort-messages-process.js";
import { filterByAllowMessageIds } from "./filter-message-id.js";
import { filterMaskSecretsData } from "./filter-mask-secrets.js";
export type cleanupMessagesOptions = {
reportedMessages: SecretLintCoreResultMessage[];
ignoredMessages: SecretLintCoreIgnoreMessage[];
allowMessageIds: {
ruleId: string;
messageId: string;
}[];
maskSecrets: boolean;
};
/**
* Post cleanup messages
* - filter ignored range
* - filter disabled message
* - [masSecrets] mask secrets message
* - filter duplicated messages
* - sort messages by range
* @param options
*/
export const cleanupMessages = (options: cleanupMessagesOptions): SecretLintCoreResultMessage[] => {
const reportedMessages = filterIgnoredMessages(options);
const reportedMessagesWithoutAllowMessageIds = filterByAllowMessageIds(reportedMessages, options.allowMessageIds);
const filters = options.maskSecrets
? [filterDuplicatedMessages, filterMaskSecretsData]
: [filterDuplicatedMessages];
const filterProcess = createMessageProcessor(filters);
return sortMessagesByLocation(filterProcess.process(reportedMessagesWithoutAllowMessageIds));
};