export function addSuggestion()

in src/suggestions.ts [22:51]


export function addSuggestion<T>(ctx: WalkContext<T>, message: string, start?: number, width?: number) {
    const suggestion: Suggestion = {
        fileName: ctx.sourceFile.fileName,
        ruleName: ctx.ruleName,
        message,
        start,
        width,
    };

    const packageName = dtPackageName(ctx.sourceFile.fileName);
    if (!packageName) {
        return;
    }
    let flag = "a";
    if (!existingPackages.has(packageName)) {
        flag = "w";
        existingPackages.add(packageName);
    }
    try {
        if (!fs.existsSync(suggestionsDir)) {
            fs.mkdirSync(suggestionsDir, { recursive: true });
        }
        fs.writeFileSync(
            path.join(suggestionsDir, packageName + ".txt"),
            flag === "a" ? "\n" + formatSuggestion(suggestion) : formatSuggestion(suggestion),
            { flag, encoding: "utf8" });
    } catch (e) {
        console.log(`Could not write suggestions for package ${packageName}. ${e.message || ""}`);
    }
}