Estoy tratando de obtener la posición actual del cursor en una aplicación nodejs.
getCursorPos ( https://nodejs.org/api/readline.html#rlgetcursorpos ) pero eso devuelve la posición relativa del indicador de entrada y el valor de las filas es 0
Pude crear una promesa para obtener esta información usando la respuesta a continuación que contiene la secuencia de escape para solicitar la posición del cursor del terminal:
¿Cómo puedo obtener la posición del cursor en la terminal?
const getCursorPos = () => new Promise((resolve) => { const termcodes = { cursorGetPosition: '\u001b[6n' }; process.stdin.setEncoding('utf8'); process.stdin.setRawMode(true); const readfx = function () { const buf = process.stdin.read(); const str = JSON.stringify(buf); // "\u001b[9;1R" const regex = /\[(.*)/g; const xy = regex.exec(str)[0].replace(/\[|R"/g, '').split(';'); const pos = { rows: xy[0], cols: xy[1] }; process.stdin.setRawMode(false); resolve(pos); } process.stdin.once('readable', readfx); process.stdout.write(termcodes.cursorGetPosition); }) const AppMain = async function () { process.stdout.write('HELLO'); const pos = await getCursorPos(); process.stdout.write("\n"); console.log({ pos }); } AppMain();