input-shell 1.0.0 → 1.3.0

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/README.md CHANGED
@@ -1,9 +1,30 @@
1
1
  # input-shell
2
- python like `input` function using input-shell in nodejs
2
+ python like `input` function using `input-shell` in nodejs
3
+
4
+
5
+ ---
6
+
7
+ #### EXPORTED FUNCTIONS:
8
+
9
+ The asynchronous callback versions and promise versions of `input`, `inputSelect`, `inputSelectMultiple`:
10
+
11
+ - `input` : input(text: string)
12
+ - `inputAsync` : inputAsync(text: string, callback: function)
13
+ - `inputSelect` : inputSelect(questionText: string, options: string, type: string)
14
+ - `inputSelectAsync` : inputSelectAsync(questionText : string, options: string, type: string, callback: function)
15
+ - `inputSelectMultipleAsync` : inputSelectMultipleAsync(questions: string, finalCallback: function)
16
+ - `inputSelectMultiple` : inputSelectMultiple(questions: string)
17
+
18
+
19
+ ---
20
+
21
+ #### DEMOS:
22
+
23
+ ##### 1. input
3
24
 
4
25
  ```
5
26
 
6
- var { input } = require(input-select);
27
+ var { input } = require("input-shell");
7
28
 
8
29
  // Example usage:
9
30
  input("Input Text: ")
@@ -19,13 +40,30 @@ input("Input Text: ")
19
40
 
20
41
  ```
21
42
 
43
+ ##### 2. inputAsync
44
+
45
+ ```
46
+
47
+ var { inputAsync } = require("input-shell");
48
+
49
+ inputAsync("Enter some text: ", (err, result) => {
50
+ if (err) {
51
+ console.error("Error:", err);
52
+ } else {
53
+ console.log("Input:", result.toString());
54
+ }
55
+ });
22
56
 
23
57
  ```
24
58
 
25
- var { inputSelect } = require(input-select);
59
+ ##### 3. inputSelectAsync checkbox
60
+
61
+ ```
62
+
63
+ var { inputSelectAsync } = require("input-shell");
26
64
 
27
65
  // Example usage: checkboxes
28
- inputSelect(
66
+ inputSelectAsync(
29
67
  'Which fruits do you like? (Use space to select, enter to finish)',
30
68
  ['Apple', 'Banana', 'Orange', 'Grape'],
31
69
  'checkbox',
@@ -36,12 +74,14 @@ inputSelect(
36
74
 
37
75
  ```
38
76
 
77
+ ##### 4. inputSelectAsync radio
78
+
39
79
  ```
40
80
 
41
- var { inputSelect } = require(input-select);
81
+ var { inputSelectAsync } = require("input-shell");
42
82
 
43
83
  // Example usage: radio button
44
- inputSelect(
84
+ inputSelectAsync(
45
85
  'What is your favorite color?',
46
86
  ['Red', 'Blue', 'Green', 'Yellow'],
47
87
  'radio',
@@ -52,9 +92,41 @@ inputSelect(
52
92
 
53
93
  ```
54
94
 
95
+ ##### 5. inputSelect checkbox
96
+
97
+ ```
98
+
99
+ var { inputSelect } = require("input-shell");
100
+
101
+ // Example usage: checkboxes
102
+ inputSelect(
103
+ 'Select multiple options:',
104
+ ['Checkbox A', 'Checkbox B', 'Checkbox C', 'Checkbox D'],
105
+ 'checkbox'
106
+ ).then(e => console.log(e))
107
+
55
108
  ```
56
109
 
57
- var { inputSelectMultiple } = require(input-select);
110
+ ##### 6. inputSelect radio
111
+
112
+ ```
113
+
114
+ var { inputSelect } = require("input-shell");
115
+
116
+ // Example usage: radio button
117
+ inputSelect(
118
+ 'Choose an option:',
119
+ ['Option 1', 'Option 2', 'Option 3'],
120
+ 'radio'
121
+ ).then(e => console.log(e))
122
+
123
+ ```
124
+
125
+ ##### 7. inputSelectMultipleAsync
126
+
127
+ ```
128
+
129
+ var { inputSelectMultipleAsync } = require("input-shell");
58
130
 
59
131
  // Example usage: Multiple questions with Radio, Checkbox, and Text answers
60
132
  const questions = [
@@ -64,12 +136,44 @@ const questions = [
64
136
  { text: 'What is your age?', type: 'text' },
65
137
  ];
66
138
 
67
- inputSelectMultiple(questions, (results) => {
68
- console.log('Results:', results);
139
+ inputSelectMultipleAsync(questions, (err, results) => {
140
+ if (err) {
141
+ console.error('Error:', err);
142
+ process.exit(1);
143
+ } else {
144
+ console.clear();
145
+ console.log('Answers:');
146
+ <!-- results.forEach((result) => {
147
+ console.log(`${result.question}: ${Array.isArray(result.answer) ? result.answer.join(', ') : result.answer}`);
148
+ }); -->
149
+ console.log("results: ", results);
150
+ process.exit();
151
+ }
69
152
  });
70
153
 
71
154
  ```
72
155
 
156
+ ##### 8. inputSelectMultipleAsync
157
+
158
+ ```
159
+
160
+ var { inputSelectMultiple } = require("input-shell");
161
+
162
+ // Example usage:
163
+ const questions = [
164
+ { text: 'What is your name?', type: 'text' },
165
+ { text: 'What is your favorite color?', type: 'radio', options: ['Red', 'Blue', 'Green'] },
166
+ { text: 'Which fruits do you like?', type: 'checkbox', options: ['Apple', 'Banana', 'Orange', 'Grape'] },
167
+ { text: 'What is your age?', type: 'text' },
168
+ ];
169
+
170
+ inputSelectMultiple(questions).then((results) => {
171
+ console.log('Results:', results);
172
+ }).catch((error) => {
173
+ console.log('Error:', error);
174
+ });
175
+
176
+ ```
73
177
 
74
178
  #### TESTS
75
179
 
@@ -0,0 +1,28 @@
1
+ /**
2
+ *
3
+ * Package:
4
+ * Author: Ganesh B
5
+ * Description:
6
+ * Install: npm i input-shell --save
7
+ * Github: https://github.com/ganeshkbhat/
8
+ * npmjs Link: https://www.npmjs.com/package/
9
+ * File: index.js
10
+ * File Description:
11
+ *
12
+ *
13
+ */
14
+
15
+ /* eslint no-console: 0 */
16
+
17
+ 'use strict';
18
+
19
+ var { inputAsync } = require("../index");
20
+
21
+ inputAsync("Enter some text: ", (err, result) => {
22
+ if (err) {
23
+ console.error("Error:", err);
24
+ } else {
25
+ console.log("Input:", result.toString());
26
+ }
27
+ });
28
+
@@ -3,7 +3,7 @@
3
3
  * Package:
4
4
  * Author: Ganesh B
5
5
  * Description:
6
- * Install: npm i input --save
6
+ * Install: npm i input-shell --save
7
7
  * Github: https://github.com/ganeshkbhat/
8
8
  * npmjs Link: https://www.npmjs.com/package/
9
9
  * File: index.js
@@ -0,0 +1,30 @@
1
+ /**
2
+ *
3
+ * Package:
4
+ * Author: Ganesh B
5
+ * Description:
6
+ * Install: npm i input-shell --save
7
+ * Github: https://github.com/ganeshkbhat/
8
+ * npmjs Link: https://www.npmjs.com/package/
9
+ * File: index.js
10
+ * File Description:
11
+ *
12
+ *
13
+ */
14
+
15
+ /* eslint no-console: 0 */
16
+
17
+ 'use strict';
18
+
19
+ var { inputSelectAsync } = require("../index");
20
+
21
+ // Example usage: checkboxes
22
+ inputSelectAsync(
23
+ 'Which fruits do you like? (Use space to select, enter to finish)',
24
+ ['Apple', 'Banana', 'Orange', 'Grape'],
25
+ 'checkbox',
26
+ (selections) => {
27
+ console.log('You selected:', selections);
28
+ }
29
+ );
30
+
@@ -3,7 +3,7 @@
3
3
  * Package:
4
4
  * Author: Ganesh B
5
5
  * Description:
6
- * Install: npm i input --save
6
+ * Install: npm i input-shell --save
7
7
  * Github: https://github.com/ganeshkbhat/
8
8
  * npmjs Link: https://www.npmjs.com/package/
9
9
  * File: index.js
@@ -20,11 +20,7 @@ var { inputSelect } = require("../index");
20
20
 
21
21
  // Example usage: checkboxes
22
22
  inputSelect(
23
- 'Which fruits do you like? (Use space to select, enter to finish)',
24
- ['Apple', 'Banana', 'Orange', 'Grape'],
25
- 'checkbox',
26
- (selections) => {
27
- console.log('You selected:', selections);
28
- }
29
- );
30
-
23
+ 'Select multiple options:',
24
+ ['Checkbox A', 'Checkbox B', 'Checkbox C', 'Checkbox D'],
25
+ 'checkbox'
26
+ ).then(e => console.log(e))
@@ -0,0 +1,42 @@
1
+ /**
2
+ *
3
+ * Package:
4
+ * Author: Ganesh B
5
+ * Description:
6
+ * Install: npm i input-shell --save
7
+ * Github: https://github.com/ganeshkbhat/
8
+ * npmjs Link: https://www.npmjs.com/package/
9
+ * File: index.js
10
+ * File Description:
11
+ *
12
+ *
13
+ */
14
+
15
+ /* eslint no-console: 0 */
16
+
17
+ 'use strict';
18
+
19
+ var { inputSelectMultipleAsync } = require("../index");
20
+
21
+ // Example usage:
22
+ const questions = [
23
+ { text: 'What is your name?', type: 'text' },
24
+ { text: 'What is your favorite color?', type: 'radio', options: ['Red', 'Blue', 'Green'] },
25
+ { text: 'Which fruits do you like?', type: 'checkbox', options: ['Apple', 'Banana', 'Orange', 'Grape'] },
26
+ { text: 'What is your age?', type: 'text' },
27
+ ];
28
+
29
+ inputSelectMultipleAsync(questions, (err, results) => {
30
+ if (err) {
31
+ console.error('Error:', err);
32
+ process.exit(1);
33
+ } else {
34
+ console.clear();
35
+ console.log('Answers:');
36
+ results.forEach((result) => {
37
+ console.log(`${result.question}: ${Array.isArray(result.answer) ? result.answer.join(', ') : result.answer}`);
38
+ });
39
+ console.log("results: ", results);
40
+ process.exit();
41
+ }
42
+ });
@@ -3,7 +3,7 @@
3
3
  * Package:
4
4
  * Author: Ganesh B
5
5
  * Description:
6
- * Install: npm i input --save
6
+ * Install: npm i input-shell --save
7
7
  * Github: https://github.com/ganeshkbhat/
8
8
  * npmjs Link: https://www.npmjs.com/package/
9
9
  * File: index.js
@@ -23,9 +23,33 @@ const questions = [
23
23
  { text: 'What is your name?', type: 'text' },
24
24
  { text: 'What is your favorite color?', type: 'radio', options: ['Red', 'Blue', 'Green'] },
25
25
  { text: 'Which fruits do you like?', type: 'checkbox', options: ['Apple', 'Banana', 'Orange', 'Grape'] },
26
+ { type: 'radio', text: 'Choose your operating system:', options: ['Windows', 'macOS', 'Linux'] },
26
27
  { text: 'What is your age?', type: 'text' },
28
+ { type: 'text', text: 'Enter your city?' },
27
29
  ];
28
30
 
29
- inputSelectMultiple(questions, (results) => {
31
+ inputSelectMultiple(questions).then((results) => {
30
32
  console.log('Results:', results);
31
- });
33
+ }).catch((error) => {
34
+ console.log('Error:', error);
35
+ });
36
+
37
+ // // USAGE Two:
38
+ // inputSelectMultiple(questions)
39
+ // .then((results) => {
40
+ // console.clear();
41
+ // console.log('Answers:');
42
+ // results.forEach((result) => {
43
+ // console.log(`${result.question}: ${Array.isArray(result.answer) ? result.answer.join(', ') : result.answer}`);
44
+ // });
45
+ // process.exit();
46
+ // })
47
+ // .catch((error) => {
48
+ // console.error('Error:', error);
49
+ // process.exit(1);
50
+ // });
51
+
52
+
53
+
54
+
55
+
@@ -0,0 +1,29 @@
1
+ /**
2
+ *
3
+ * Package:
4
+ * Author: Ganesh B
5
+ * Description:
6
+ * Install: npm i input-shell --save
7
+ * Github: https://github.com/ganeshkbhat/
8
+ * npmjs Link: https://www.npmjs.com/package/
9
+ * File: index.js
10
+ * File Description:
11
+ *
12
+ *
13
+ */
14
+
15
+ /* eslint no-console: 0 */
16
+
17
+ 'use strict';
18
+
19
+ var { inputSelectAsync } = require("../index");
20
+
21
+ // Example usage: radio button
22
+ inputSelectAsync(
23
+ 'What is your favorite color?',
24
+ ['Red', 'Blue', 'Green', 'Yellow'],
25
+ 'radio',
26
+ (selection) => {
27
+ console.log('You selected:', selection);
28
+ }
29
+ );
@@ -3,7 +3,7 @@
3
3
  * Package:
4
4
  * Author: Ganesh B
5
5
  * Description:
6
- * Install: npm i input --save
6
+ * Install: npm i input-shell --save
7
7
  * Github: https://github.com/ganeshkbhat/
8
8
  * npmjs Link: https://www.npmjs.com/package/
9
9
  * File: index.js
@@ -19,13 +19,10 @@
19
19
  var { inputSelect } = require("../index");
20
20
 
21
21
  // Example usage: radio button
22
- inputSelect(
23
- 'What is your favorite color?',
24
- ['Red', 'Blue', 'Green', 'Yellow'],
25
- 'radio',
26
- (selection) => {
27
- console.log('You selected:', selection);
28
- }
29
- );
30
22
 
23
+ inputSelect(
24
+ 'Choose an option:',
25
+ ['Option 1', 'Option 2', 'Option 3'],
26
+ 'radio'
27
+ ).then(e => console.log(e))
31
28