diff --git a/out/cli.cjs b/out/cli.cjs index 8a79a122..d216780e 100755 --- a/out/cli.cjs +++ b/out/cli.cjs @@ -32893,7 +32893,7 @@ var require_retries = __commonJS({ retryInterval = initialInterval * Math.pow(x5, exponent) + Math.random() * 1e3; } const d7 = Math.min(retryInterval, maxInterval); - await delay4(d7); + await delay3(d7); x5++; } } @@ -32914,8 +32914,8 @@ var require_retries = __commonJS({ } return 0; } - async function delay4(delay5) { - return new Promise((resolve) => setTimeout(resolve, delay5)); + async function delay3(delay4) { + return new Promise((resolve) => setTimeout(resolve, delay4)); } } }); @@ -67357,11 +67357,7 @@ var generateCommitMessageByDiff = async (diff, fullGitMojiSpec = false, context MAX_REQUEST_TOKENS, fullGitMojiSpec ); - const commitMessages = []; - for (const promise of commitMessagePromises) { - commitMessages.push(await promise); - await delay3(2e3); - } + const commitMessages = await Promise.all(commitMessagePromises); return commitMessages.join("\n\n"); } const messages = await generateCommitMessageChatCompletionPrompt( @@ -67457,9 +67453,6 @@ var getCommitMsgsPromisesFromFileDiffs = async (diff, maxDiffLength, fullGitMoji } return commitMessagePromises; }; -function delay3(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} // src/utils/git.ts var import_fs3 = require("fs"); @@ -67923,9 +67916,15 @@ var prepareCommitMessageHook = async (isStageAllFlag = false) => { } const spin = le(); spin.start("Generating commit message"); - const commitMessage = await generateCommitMessageByDiff( - await getDiff({ files: staged }) - ); + let commitMessage; + try { + commitMessage = await generateCommitMessageByDiff( + await getDiff({ files: staged }) + ); + } catch (error) { + spin.stop("Done"); + throw error; + } spin.stop("Done"); const fileContent = await import_promises4.default.readFile(messageFilePath); const messageWithComment = `# ${commitMessage} @@ -67941,8 +67940,24 @@ ${fileContent.toString()}`; const message = config7.OCO_HOOK_AUTO_UNCOMMENT ? messageWithoutComment : messageWithComment; await import_promises4.default.writeFile(messageFilePath, message); } catch (error) { - ce(`${source_default.red("\u2716")} ${error}`); - process.exit(1); + try { + ce(`${source_default.red("\u2716")} ${error}`); + const fileContent = await import_promises4.default.readFile(messageFilePath); + const commentedError = String(error).replace(new RegExp("^", "gm"), "# "); + const message = ` + +# ---------- [OpenCommit] ---------- # +# Failed to generate the commit message. +# To cancel the commit, just close this window without making any changes. + +${commentedError} + +${fileContent.toString()}`; + await import_promises4.default.writeFile(messageFilePath, message); + } catch (error2) { + ce(`${source_default.red("\u2716")} ${error2}`); + process.exit(1); + } } }; diff --git a/out/github-action.cjs b/out/github-action.cjs index 39b526bb..357b35f0 100644 --- a/out/github-action.cjs +++ b/out/github-action.cjs @@ -1677,9 +1677,9 @@ var require_timers = __commonJS({ } } var Timeout = class { - constructor(callback, delay4, opaque) { + constructor(callback, delay3, opaque) { this.callback = callback; - this.delay = delay4; + this.delay = delay3; this.opaque = opaque; this.state = -2; this.refresh(); @@ -1698,8 +1698,8 @@ var require_timers = __commonJS({ } }; module2.exports = { - setTimeout(callback, delay4, opaque) { - return delay4 < 1e3 ? setTimeout(callback, delay4, opaque) : new Timeout(callback, delay4, opaque); + setTimeout(callback, delay3, opaque) { + return delay3 < 1e3 ? setTimeout(callback, delay3, opaque) : new Timeout(callback, delay3, opaque); }, clearTimeout(timeout) { if (timeout instanceof Timeout) { @@ -10803,7 +10803,7 @@ var require_mock_utils = __commonJS({ if (mockDispatch2.data.callback) { mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }; } - const { data: { statusCode, data, headers, trailers, error }, delay: delay4, persist } = mockDispatch2; + const { data: { statusCode, data, headers, trailers, error }, delay: delay3, persist } = mockDispatch2; const { timesInvoked, times } = mockDispatch2; mockDispatch2.consumed = !persist && timesInvoked >= times; mockDispatch2.pending = timesInvoked < times; @@ -10812,10 +10812,10 @@ var require_mock_utils = __commonJS({ handler.onError(error); return true; } - if (typeof delay4 === "number" && delay4 > 0) { + if (typeof delay3 === "number" && delay3 > 0) { setTimeout(() => { handleReply(this[kDispatches]); - }, delay4); + }, delay3); } else { handleReply(this[kDispatches]); } @@ -56089,7 +56089,7 @@ var require_retries = __commonJS({ retryInterval = initialInterval * Math.pow(x2, exponent) + Math.random() * 1e3; } const d5 = Math.min(retryInterval, maxInterval); - await delay4(d5); + await delay3(d5); x2++; } } @@ -56110,8 +56110,8 @@ var require_retries = __commonJS({ } return 0; } - async function delay4(delay5) { - return new Promise((resolve) => setTimeout(resolve, delay5)); + async function delay3(delay4) { + return new Promise((resolve) => setTimeout(resolve, delay4)); } } }); @@ -87928,11 +87928,7 @@ var generateCommitMessageByDiff = async (diff, fullGitMojiSpec = false, context2 MAX_REQUEST_TOKENS, fullGitMojiSpec ); - const commitMessages = []; - for (const promise of commitMessagePromises) { - commitMessages.push(await promise); - await delay3(2e3); - } + const commitMessages = await Promise.all(commitMessagePromises); return commitMessages.join("\n\n"); } const messages = await generateCommitMessageChatCompletionPrompt( @@ -88028,9 +88024,6 @@ var getCommitMsgsPromisesFromFileDiffs = async (diff, maxDiffLength, fullGitMoji } return commitMessagePromises; }; -function delay3(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); -} // src/utils/randomIntFromInterval.ts function randomIntFromInterval(min, max) { diff --git a/src/commands/prepare-commit-msg-hook.ts b/src/commands/prepare-commit-msg-hook.ts index 776bf90a..e1f7348b 100644 --- a/src/commands/prepare-commit-msg-hook.ts +++ b/src/commands/prepare-commit-msg-hook.ts @@ -49,9 +49,16 @@ export const prepareCommitMessageHook = async ( const spin = spinner(); spin.start('Generating commit message'); - const commitMessage = await generateCommitMessageByDiff( - await getDiff({ files: staged }) - ); + let commitMessage: string; + try { + commitMessage = await generateCommitMessageByDiff( + await getDiff({ files: staged }) + ); + } catch (error) { + spin.stop('Done'); + throw error; + } + spin.stop('Done'); const fileContent = await fs.readFile(messageFilePath); @@ -65,7 +72,17 @@ export const prepareCommitMessageHook = async ( await fs.writeFile(messageFilePath, message); } catch (error) { - outro(`${chalk.red('✖')} ${error}`); - process.exit(1); + try { + outro(`${chalk.red('✖')} ${error}`); + const fileContent = await fs.readFile(messageFilePath); + + const commentedError = String(error).replace(new RegExp('^', 'gm'), '# '); + const message = `\n\n# ---------- [OpenCommit] ---------- #\n# Failed to generate the commit message.\n# To cancel the commit, just close this window without making any changes.\n\n${commentedError}\n\n${fileContent.toString()}` + + await fs.writeFile(messageFilePath, message); + } catch (error) { + outro(`${chalk.red('✖')} ${error}`); + process.exit(1); + } } }; diff --git a/src/generateCommitMessageFromGitDiff.ts b/src/generateCommitMessageFromGitDiff.ts index 4c4d038f..6b7efd86 100644 --- a/src/generateCommitMessageFromGitDiff.ts +++ b/src/generateCommitMessageFromGitDiff.ts @@ -66,11 +66,7 @@ export const generateCommitMessageByDiff = async ( fullGitMojiSpec ); - const commitMessages = [] as string[]; - for (const promise of commitMessagePromises) { - commitMessages.push((await promise) as string); - await delay(2000); - } + const commitMessages = await Promise.all(commitMessagePromises); return commitMessages.join('\n\n'); }