@inquirer/input 1.0.8 → 1.1.1

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/cjs/index.js CHANGED
@@ -16,7 +16,7 @@ const core_1 = require("@inquirer/core");
16
16
  const chalk_1 = __importDefault(require("chalk"));
17
17
  exports.default = (0, core_1.createPrompt)((config, done) => {
18
18
  const [status, setStatus] = (0, core_1.useState)('pending');
19
- const [defaultValue, setDefaultValue] = (0, core_1.useState)(config.default);
19
+ const [defaultValue = '', setDefaultValue] = (0, core_1.useState)(config.default);
20
20
  const [errorMsg, setError] = (0, core_1.useState)(undefined);
21
21
  const [value, setValue] = (0, core_1.useState)('');
22
22
  const isLoading = status === 'loading';
@@ -27,7 +27,7 @@ exports.default = (0, core_1.createPrompt)((config, done) => {
27
27
  return;
28
28
  }
29
29
  if ((0, core_1.isEnterKey)(key)) {
30
- const answer = value || defaultValue || '';
30
+ const answer = value || defaultValue;
31
31
  setStatus('loading');
32
32
  const isValid = yield config.validate(answer);
33
33
  if (isValid === true) {
@@ -36,9 +36,9 @@ exports.default = (0, core_1.createPrompt)((config, done) => {
36
36
  done(answer);
37
37
  }
38
38
  else {
39
- // TODO: Can we keep the value after validation failure?
40
- // `rl.line = value` works but it looses the cursor position.
41
- setValue('');
39
+ // Reset the readline line value to the previous value. On line event, the value
40
+ // get cleared, forcing the user to re-enter the value instead of fixing it.
41
+ rl.write(value);
42
42
  setError(isValid || 'You must provide a valid value');
43
43
  setStatus('pending');
44
44
  }
@@ -46,6 +46,12 @@ exports.default = (0, core_1.createPrompt)((config, done) => {
46
46
  else if ((0, core_1.isBackspaceKey)(key) && !value) {
47
47
  setDefaultValue(undefined);
48
48
  }
49
+ else if (key.name === 'tab' && !value) {
50
+ setDefaultValue(undefined);
51
+ rl.clearLine(0); // Remove the tab character.
52
+ rl.write(defaultValue);
53
+ setValue(defaultValue);
54
+ }
49
55
  else {
50
56
  setValue(rl.line);
51
57
  setError(undefined);
@@ -2,7 +2,7 @@ import { createPrompt, useState, useKeypress, usePrefix, isEnterKey, isBackspace
2
2
  import chalk from 'chalk';
3
3
  export default createPrompt((config, done) => {
4
4
  const [status, setStatus] = useState('pending');
5
- const [defaultValue, setDefaultValue] = useState(config.default);
5
+ const [defaultValue = '', setDefaultValue] = useState(config.default);
6
6
  const [errorMsg, setError] = useState(undefined);
7
7
  const [value, setValue] = useState('');
8
8
  const isLoading = status === 'loading';
@@ -13,7 +13,7 @@ export default createPrompt((config, done) => {
13
13
  return;
14
14
  }
15
15
  if (isEnterKey(key)) {
16
- const answer = value || defaultValue || '';
16
+ const answer = value || defaultValue;
17
17
  setStatus('loading');
18
18
  const isValid = await config.validate(answer);
19
19
  if (isValid === true) {
@@ -22,9 +22,9 @@ export default createPrompt((config, done) => {
22
22
  done(answer);
23
23
  }
24
24
  else {
25
- // TODO: Can we keep the value after validation failure?
26
- // `rl.line = value` works but it looses the cursor position.
27
- setValue('');
25
+ // Reset the readline line value to the previous value. On line event, the value
26
+ // get cleared, forcing the user to re-enter the value instead of fixing it.
27
+ rl.write(value);
28
28
  setError(isValid || 'You must provide a valid value');
29
29
  setStatus('pending');
30
30
  }
@@ -32,6 +32,12 @@ export default createPrompt((config, done) => {
32
32
  else if (isBackspaceKey(key) && !value) {
33
33
  setDefaultValue(undefined);
34
34
  }
35
+ else if (key.name === 'tab' && !value) {
36
+ setDefaultValue(undefined);
37
+ rl.clearLine(0); // Remove the tab character.
38
+ rl.write(defaultValue);
39
+ setValue(defaultValue);
40
+ }
35
41
  else {
36
42
  setValue(rl.line);
37
43
  setError(undefined);
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@inquirer/input",
3
- "version": "1.0.8",
3
+ "version": "1.1.1",
4
4
  "description": "Inquirer input text prompt",
5
5
  "main": "./dist/cjs/index.js",
6
- "typings": "./dist/cjs/types/index.d.mts",
6
+ "typings": "./dist/cjs/types/index.d.cts",
7
7
  "files": [
8
8
  "dist/**/*"
9
9
  ],
@@ -54,12 +54,12 @@
54
54
  "license": "MIT",
55
55
  "homepage": "https://github.com/SBoudrias/Inquirer.js/blob/master/packages/input/README.md",
56
56
  "dependencies": {
57
- "@inquirer/core": "^1.2.0",
58
- "@inquirer/type": "^1.0.3",
57
+ "@inquirer/core": "^1.2.2",
58
+ "@inquirer/type": "^1.0.4",
59
59
  "chalk": "^4.1.2"
60
60
  },
61
61
  "devDependencies": {
62
- "@inquirer/testing": "^1.0.4"
62
+ "@inquirer/testing": "^1.0.5"
63
63
  },
64
64
  "scripts": {
65
65
  "tsc": "yarn run clean && yarn run tsc:esm && yarn run tsc:cjs",
@@ -81,10 +81,10 @@
81
81
  "default": "./dist/esm/index.mjs"
82
82
  },
83
83
  "require": {
84
- "types": "./dist/cjs/types/index.d.mts",
84
+ "types": "./dist/cjs/types/index.d.cts",
85
85
  "default": "./dist/cjs/index.js"
86
86
  }
87
87
  }
88
88
  },
89
- "gitHead": "f3a176d916fe26038c9fb57f1ab485aa79c053ce"
89
+ "gitHead": "4ade5f25d271c6f814efc7a21bdeb1a4d1ee6cf8"
90
90
  }
File without changes