CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
RuleContext.js88 linesDownload Raw Back to module
1import { EventEmitter } from "./helper/promise-event-emitter.js";2import { createTranslator } from "./helper/SecretLintRuleMessageTranslator.js";3export const createContextEvents = () => {4    const contextEvents = new EventEmitter();5    const REPORT_SYMBOL = Symbol("report");6    const IGNORE_SYMBOL = Symbol("ignore");7    return {8        report(descriptor) {9            contextEvents.emit(REPORT_SYMBOL, descriptor);10        },11        onReport(handler) {12            const listener = (descriptor) => {13                handler(descriptor);14            };15            contextEvents.on(REPORT_SYMBOL, listener);16            return () => {17                contextEvents.off(REPORT_SYMBOL, listener);18            };19        },20        ignore(descriptor) {21            contextEvents.emit(IGNORE_SYMBOL, descriptor);22        },23        onIgnore(handler) {24            const listener = (descriptor) => {25                handler(descriptor);26            };27            contextEvents.on(IGNORE_SYMBOL, listener);28            return () => {29                contextEvents.off(IGNORE_SYMBOL, listener);30            };31        },32    };33};34export const createRuleContext = ({ ruleId, ruleParentId, meta, severity, sourceCode, contextEvents, sharedOptions, locale, }) => {35    return {36        sharedOptions: sharedOptions,37        createTranslator: (messages) => {38            return createTranslator(messages, {39                defaultLocale: locale,40            });41        },42        ignore(descriptor) {43            const { message } = descriptor.message;44            contextEvents.ignore({45                type: "ignore",46                ruleId: ruleId,47                ruleParentId,48                range: descriptor.range,49                targetRuleId: descriptor.targetRuleId,50                loc: sourceCode.rangeToLocation(descriptor.range),51                message: message,52            });53        },54        report(descriptor) {55            const { message, messageId, data } = descriptor.message;56            // Default severity level is "error"57            const severityLevel = severity ?? "error";58            if (ruleParentId) {59                contextEvents.report({60                    ...descriptor,61                    type: "message",62                    ruleId: ruleId,63                    ruleParentId,64                    loc: sourceCode.rangeToLocation(descriptor.range),65                    severity: severityLevel,66                    message,67                    messageId,68                    docsUrl: meta.docs?.url ? `${meta.docs.url}#${messageId}` : undefined,69                    data,70                });71            }72            else {73                contextEvents.report({74                    ...descriptor,75                    type: "message",76                    ruleId: ruleId,77                    loc: sourceCode.rangeToLocation(descriptor.range),78                    severity: severityLevel,79                    message,80                    messageId,81                    docsUrl: meta.docs?.url ? `${meta.docs.url}#${messageId}` : undefined,82                    data,83                });84            }85        },86    };87};88//# sourceMappingURL=RuleContext.js.map
basant307/AI_Governance_Project · CoolFace