From 647564a800127db9ad55822bea25f80f4d693f55 Mon Sep 17 00:00:00 2001 From: Nick Mitchell Date: Thu, 28 Apr 2022 04:56:25 -0400 Subject: [PATCH] fix: breakLines regression versus paginated content (#1108) [This PR](https://github.com/SBoudrias/Inquirer.js/pull/1106) updated `breakLines` to use `wrap-ansi`. However, in doing so, we broke the paginator. It assumes that the return value will be of the same length as the original array, but that broken lines will be subarrays. --- packages/core/lib/utils.js | 2 +- packages/inquirer/lib/utils/screen-manager.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/core/lib/utils.js b/packages/core/lib/utils.js index 06099525d..dfff2de7f 100644 --- a/packages/core/lib/utils.js +++ b/packages/core/lib/utils.js @@ -10,5 +10,5 @@ const wrapAnsi = require('wrap-ansi'); exports.breakLines = (content, width) => content .split('\n') - .map((line) => wrapAnsi(line, width, { trim: false, hard: true })) + .map((line) => wrapAnsi(line, width, { trim: false, hard: true }).split('\n')) .join('\n'); diff --git a/packages/inquirer/lib/utils/screen-manager.js b/packages/inquirer/lib/utils/screen-manager.js index 0be0e8e16..d411a9944 100644 --- a/packages/inquirer/lib/utils/screen-manager.js +++ b/packages/inquirer/lib/utils/screen-manager.js @@ -160,7 +160,9 @@ class ScreenManager { // re: trim: false; by default, `wrap-ansi` trims whitespace, which // is not what we want. // re: hard: true; by default', `wrap-ansi` does soft wrapping - return lines.map((line) => wrapAnsi(line, width, { trim: false, hard: true })); + return lines.map((line) => + wrapAnsi(line, width, { trim: false, hard: true }).split('\n') + ); } /**