eslint-fixer-gpt
Version:
Automatically provide in-depth suggestions to fix ESLint errors
54 lines • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processLint = void 0;
const preprocess_1 = require("./preprocess");
const buildPrompt = (promptObj) => {
const promptQuestion = "Given the following message, ruleId, line number, and source code returned by ESLint, provide a solution for how this error could be resolved:";
const prompt = `${promptQuestion}
message: ${promptObj.message}
ruleId: ${[promptObj.ruleId]}
line number: ${promptObj.lineStart}
source code: ${promptObj.errorFile}`;
return prompt;
};
const fetch = async (model, content, openai) => {
try {
const response = await openai.chat.completions.create({
messages: [{ role: "user", content: content }],
model: model,
});
return response;
}
catch (error) {
console.error("Error: Could not reach API");
}
;
};
const makeResponse = (filepath, lineNumber, columnStart, responseMessage) => {
const response = `
${filepath}
${lineNumber}:${columnStart}
${responseMessage}
`;
return response;
};
const processLint = async (lintOutput, model, openai) => {
const responses = [];
for (const element of lintOutput) {
if (element.messages.length > 0) {
const promptObjs = (0, preprocess_1.processMessages)(element.filePath, element.messages);
for (const promptObj of promptObjs) {
const prompt = buildPrompt(promptObj);
const response = await fetch(model, prompt, openai);
const responseMessage = response.choices[0].message.content;
responses.push(makeResponse(promptObj.filepath, promptObj.lineStart, promptObj.columnStart, responseMessage));
}
;
}
;
}
;
return responses;
};
exports.processLint = processLint;
//# sourceMappingURL=process.js.map