From 98fe7c3e148b64c37ddc61d750657d857021fc6e Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Thu, 7 Sep 2023 15:34:26 -0500 Subject: [PATCH] fix: nested promises, revert wrapping --- .changeset/old-goats-serve.md | 5 +++++ .changeset/polite-deers-dance.md | 5 +++++ src/messages/index.ts | 15 +++++++-------- 3 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 .changeset/old-goats-serve.md create mode 100644 .changeset/polite-deers-dance.md diff --git a/.changeset/old-goats-serve.md b/.changeset/old-goats-serve.md new file mode 100644 index 0000000..56a2bae --- /dev/null +++ b/.changeset/old-goats-serve.md @@ -0,0 +1,5 @@ +--- +"@astrojs/cli-kit": patch +--- + +Fix nested promises in `say` diff --git a/.changeset/polite-deers-dance.md b/.changeset/polite-deers-dance.md new file mode 100644 index 0000000..54c83c2 --- /dev/null +++ b/.changeset/polite-deers-dance.md @@ -0,0 +1,5 @@ +--- +"@astrojs/cli-kit": patch +--- + +Revert Houston wrapping diff --git a/src/messages/index.ts b/src/messages/index.ts index ca82e38..534bfaa 100644 --- a/src/messages/index.ts +++ b/src/messages/index.ts @@ -3,7 +3,7 @@ import color from 'chalk'; import { createLogUpdate } from 'log-update'; import { random, randomBetween, sleep, useAscii } from '../utils/index.js' import { action } from '../prompt/util/action.js'; -import { strip, wrap } from '../prompt/util/clear.js'; +import { strip } from '../prompt/util/clear.js'; type Message = string | Promise; @@ -49,13 +49,10 @@ export const say = async (msg: Message | Message[] = [], { clear = false, hat = const [h, v] = walls; const [tl, tr, bl, br] = corners; const head = h.repeat(3 - strip(hat).split('').length); - const prefix = ' '.repeat(9); - const [message, secondMessage = '', ...lines] = wrap(`${prefix}${msg}`, prefix).split('\n'); return [ `${tl}${h.repeat(2)}${hat}${head}${tr} ${color.bold(color.cyan('Houston:'))}`, - `${v} ${eye} ${color.cyanBright(mouth)} ${eye} ${message.trimStart()}`, - `${bl}${h.repeat(5)}${br} ${secondMessage.trimStart()}`, - ...lines + `${v} ${eye} ${color.cyanBright(mouth)} ${eye} ${msg}`, + `${bl}${h.repeat(5)}${br}`, ].join('\n') }; @@ -65,7 +62,8 @@ export const say = async (msg: Message | Message[] = [], { clear = false, hat = let msg = []; let eye = random(eyes); let j = 0; - for (const word of [''].concat(_message)) { + for (let word of [''].concat(_message)) { + word = await word; if (word) msg.push(word); const mouth = random(mouths); if (j % 7 === 0) eye = random(eyes); @@ -75,7 +73,8 @@ export const say = async (msg: Message | Message[] = [], { clear = false, hat = j++; } if (!cancelled) await sleep(100); - const text = '\n' + face(_message.join(' '), { mouth: useAscii() ? 'u' : '◡', eye: useAscii() ? '^' : '◠' }); + const tmp = await Promise.all(_message).then(res => res.join(' ')) + const text = '\n' + face(tmp, { mouth: useAscii() ? 'u' : '◡', eye: useAscii() ? '^' : '◠' }); logUpdate(text); if (!cancelled) await sleep(randomBetween(1200, 1400)); i++;