Socket
Socket
Sign inDemoInstall

@inquirer/select

Package Overview
Dependencies
Maintainers
3
Versions
82
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@inquirer/select - npm Package Compare versions

Comparing version 1.2.12 to 1.3.0

27

./dist/cjs/index.js

@@ -29,12 +29,15 @@ "use strict";

exports.default = (0, core_1.createPrompt)((config, done) => {
const { choices: items, pageSize } = config;
const { choices: items, loop = true, pageSize } = config;
const firstRender = (0, core_1.useRef)(true);
const prefix = (0, core_1.usePrefix)();
const [status, setStatus] = (0, core_1.useState)('pending');
const [active, setActive] = (0, core_1.useState)(() => {
const selected = items.findIndex(isSelectable);
if (selected < 0)
const bounds = (0, core_1.useMemo)(() => {
const first = items.findIndex(isSelectable);
// TODO: Replace with `findLastIndex` when it's available.
const last = items.length - 1 - [...items].reverse().findIndex(isSelectable);
if (first < 0)
throw new Error('[select prompt] No selectable choices. All choices are disabled.');
return selected;
});
return { first, last };
}, [items]);
const [active, setActive] = (0, core_1.useState)(bounds.first);
// Safe to assume the cursor position always point to a Choice.

@@ -48,2 +51,6 @@ const selectedChoice = items[active];

else if ((0, core_1.isUpKey)(key) || (0, core_1.isDownKey)(key)) {
if (!loop && active === bounds.first && (0, core_1.isUpKey)(key))
return;
if (!loop && active === bounds.last && (0, core_1.isDownKey)(key))
return;
const offset = (0, core_1.isUpKey)(key) ? -1 : 1;

@@ -69,8 +76,8 @@ let next = active;

}
const lines = items
.map((item, index) => renderItem({ item, isActive: index === active }))
.join('\n');
const page = (0, core_1.usePagination)(lines, {
const page = (0, core_1.usePagination)({
items,
active,
renderItem,
pageSize,
loop,
});

@@ -77,0 +84,0 @@ if (status === 'done') {

@@ -29,12 +29,15 @@ "use strict";

exports.default = (0, core_1.createPrompt)((config, done) => {
const { choices: items, pageSize } = config;
const { choices: items, loop = true, pageSize } = config;
const firstRender = (0, core_1.useRef)(true);
const prefix = (0, core_1.usePrefix)();
const [status, setStatus] = (0, core_1.useState)('pending');
const [active, setActive] = (0, core_1.useState)(() => {
const selected = items.findIndex(isSelectable);
if (selected < 0)
const bounds = (0, core_1.useMemo)(() => {
const first = items.findIndex(isSelectable);
// TODO: Replace with `findLastIndex` when it's available.
const last = items.length - 1 - [...items].reverse().findIndex(isSelectable);
if (first < 0)
throw new Error('[select prompt] No selectable choices. All choices are disabled.');
return selected;
});
return { first, last };
}, [items]);
const [active, setActive] = (0, core_1.useState)(bounds.first);
// Safe to assume the cursor position always point to a Choice.

@@ -48,2 +51,6 @@ const selectedChoice = items[active];

else if ((0, core_1.isUpKey)(key) || (0, core_1.isDownKey)(key)) {
if (!loop && active === bounds.first && (0, core_1.isUpKey)(key))
return;
if (!loop && active === bounds.last && (0, core_1.isDownKey)(key))
return;
const offset = (0, core_1.isUpKey)(key) ? -1 : 1;

@@ -69,8 +76,8 @@ let next = active;

}
const lines = items
.map((item, index) => renderItem({ item, isActive: index === active }))
.join('\n');
const page = (0, core_1.usePagination)(lines, {
const page = (0, core_1.usePagination)({
items,
active,
renderItem,
pageSize,
loop,
});

@@ -77,0 +84,0 @@ if (status === 'done') {

@@ -13,4 +13,5 @@ import { Separator } from '@inquirer/core';

pageSize?: number | undefined;
loop?: boolean | undefined;
}, context?: import("@inquirer/type").Context | undefined) => import("@inquirer/type").CancelablePromise<Value>;
export default _default;
export { Separator };
{
"name": "@inquirer/select",
"version": "1.2.12",
"version": "1.3.0",
"description": "Inquirer select/list prompt",

@@ -57,3 +57,3 @@ "main": "./dist/cjs/index.js",

"dependencies": {
"@inquirer/core": "^5.0.1",
"@inquirer/core": "^5.1.0",
"@inquirer/type": "^1.1.5",

@@ -65,3 +65,3 @@ "ansi-escapes": "^4.3.2",

"devDependencies": {
"@inquirer/testing": "^2.1.7"
"@inquirer/testing": "^2.1.8"
},

@@ -91,3 +91,3 @@ "scripts": {

},
"gitHead": "85784061d702778bc9dd48ca08f09ee9976b06ee"
"gitHead": "c88aaca660e58aa0fb079fe656c1004855e029da"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc