Skip to content

Commit

Permalink
feat: move error handling into own function (#7)
Browse files Browse the repository at this point in the history
* feat: move error handling into own function

* feat: use specific error code when code is unkown

* refactor: remove duplicated return
  • Loading branch information
TimPietrusky committed Apr 5, 2023
1 parent 747a2c8 commit 31aae4c
Showing 1 changed file with 38 additions and 8 deletions.
46 changes: 38 additions & 8 deletions base.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,15 +107,9 @@ export async function evolve(generation) {
await import(`./${nextFilename}`);
} catch (error) {
spawns--;
const message = (error.response?.message ?? error.message ?? "unknown error").trim();
spinner.fail(`Generation ${generation} | ${spawns} spawns left`);
console.error(error);
// The AI might increment too often
if (message.startsWith("ENOENT") && generation > 1) {
await evolve(generation - 1);
} else {
throw error;
}

await handleError(error, generation);
}
}

Expand All @@ -126,3 +120,39 @@ export function pad(n) {
export function buildFilename(currentGeneration) {
return path.join(".", `generation-${pad(currentGeneration)}.js`);
}

export async function handleError(error, generation) {
const message = (
error.response?.data?.error.message ??
error.message ??
"unknown error"
).trim();

const code = error.response?.status ?? error.code ?? "UNKOWN_CODE";

if (code === "ERR_MODULE_NOT_FOUND") {
console.error(message);
return;
}

// The AI might increment too often
if (message.startsWith("ENOENT") && generation > 1) {
await evolve(generation - 1);
}

// Errors in the API
if (error.response && code !== 200) {
console.error(`${code}: ${message}`);

if (code === 401) {
console.error(
"Please make sure to use a valid API key and that you have set OPENAI_SECRET in .env"
);
}

return;
}

console.error(error);
throw error;
}

0 comments on commit 31aae4c

Please sign in to comment.