swarm-code 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/interactive.js +9 -11
- package/package.json +1 -1
package/dist/interactive.js
CHANGED
|
@@ -478,41 +478,39 @@ function checkboxSelect(items) {
|
|
|
478
478
|
}
|
|
479
479
|
};
|
|
480
480
|
let rendered = false;
|
|
481
|
+
process.stdout.write("\x1b[?25l"); // Hide cursor
|
|
481
482
|
render();
|
|
482
483
|
rendered = true;
|
|
483
484
|
const wasRaw = stdin.isRaw;
|
|
484
485
|
if (stdin.isTTY)
|
|
485
486
|
stdin.setRawMode(true);
|
|
487
|
+
const cleanup = () => {
|
|
488
|
+
stdin.removeListener("data", onData);
|
|
489
|
+
if (stdin.isTTY)
|
|
490
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
491
|
+
process.stdout.write("\x1b[?25h"); // Show cursor
|
|
492
|
+
};
|
|
486
493
|
const onData = (data) => {
|
|
487
494
|
const key = data.toString();
|
|
488
495
|
if (key === "\x1b[A" || key === "k") {
|
|
489
|
-
// Up
|
|
490
496
|
cursor = (cursor - 1 + items.length) % items.length;
|
|
491
497
|
render();
|
|
492
498
|
}
|
|
493
499
|
else if (key === "\x1b[B" || key === "j") {
|
|
494
|
-
// Down
|
|
495
500
|
cursor = (cursor + 1) % items.length;
|
|
496
501
|
render();
|
|
497
502
|
}
|
|
498
503
|
else if (key === " ") {
|
|
499
|
-
// Toggle
|
|
500
504
|
items[cursor].checked = !items[cursor].checked;
|
|
501
505
|
render();
|
|
502
506
|
}
|
|
503
507
|
else if (key === "\r" || key === "\n") {
|
|
504
|
-
|
|
505
|
-
stdin.removeListener("data", onData);
|
|
506
|
-
if (stdin.isTTY)
|
|
507
|
-
stdin.setRawMode(wasRaw ?? false);
|
|
508
|
+
cleanup();
|
|
508
509
|
const selected = items.map((item, i) => (item.checked ? i : -1)).filter((i) => i >= 0);
|
|
509
510
|
resolve(selected);
|
|
510
511
|
}
|
|
511
512
|
else if (key === "\x1b" || key === "\x03") {
|
|
512
|
-
|
|
513
|
-
stdin.removeListener("data", onData);
|
|
514
|
-
if (stdin.isTTY)
|
|
515
|
-
stdin.setRawMode(wasRaw ?? false);
|
|
513
|
+
cleanup();
|
|
516
514
|
resolve([]);
|
|
517
515
|
}
|
|
518
516
|
};
|
package/package.json
CHANGED