UNPKG

eslint-fixer-gpt

Version:

Automatically provide in-depth suggestions to fix ESLint errors

54 lines 1.92 kB
"use strict"; 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