-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
rx-observable-array.js
47 lines (43 loc) · 922 Bytes
/
rx-observable-array.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { from } from 'rxjs';
import inquirer from '../lib/inquirer.js';
const questions = [
{
type: 'input',
name: 'first_name',
message: "What's your first name",
},
{
type: 'input',
name: 'last_name',
message: "What's your last name",
default() {
return 'Doe';
},
},
{
type: 'input',
name: 'phone',
message: "What's your phone number",
validate(value) {
const pass = value.match(
/^([01])?[\s.-]?\(?(\d{3})\)?[\s.-]?(\d{3})[\s.-]?(\d{4})\s?((?:#|ext\.?\s?|x\.?\s?)(?:\d+)?)?$/i,
);
if (pass) {
return true;
}
return 'Please enter a valid phone number';
},
},
];
const observable = from(questions);
inquirer.prompt(observable).ui.process.subscribe(
(ans) => {
console.log('Answer is:', ans);
},
(err) => {
console.log('Error:', err);
},
() => {
console.log('Completed');
},
);