-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
107 lines (69 loc) · 2.27 KB
/
app.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
'use strict';
const readline = require('readline');
const path = require('path')
console.log('Hello, welcome to BPMN-Engine Samples');
var files = []
displayFiles();
var log = console.log;
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var lastFile;
var recursiveAsyncReadLine = function () {
console.log(`Select a file from the list or "exit" or ? for list`);
rl.question('Command: ', function (answer) {
if (answer == 'exit') //we need some base case, for recursion
return rl.close(); //closing RL and returning from function.
if (answer == '?') //we need some base case, for recursion
displayFiles();
log('Got it! Your answer was: "', answer, '"');
let file = files[answer - 1];
if (file) {
if (lastFile)
delete require.cache[require.resolve('./engine-samples/' + lastFile)]
console.log(" invoking file: " + file);
let test = require('./engine-samples/' + file);
lastFile = file;
}
recursiveAsyncReadLine(); //Calling this function again to ask new question
});
};
recursiveAsyncReadLine(); //we have to actually start our recursion somehow
function displayFiles() {
console.log(__dirname);
const testFolder = __dirname + '/engine-samples';
const fs = require('fs');
files = [];
let i = 0;
fs.readdirSync(testFolder).forEach(file => {
if (path.extname(file) == '.js') {
console.log("" + (++i) + " " + file);
files.push(file);
}
});
}
/*
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
while ( checkInput()) { }
async function checkInput() {
readLine('testing?', function (answer) {
// TODO: Log the answer in a database
console.log(`Select a file from the list or "exit" ${answer}`);
if (answer== 'exit')
return null;
let file = files[answer - 1];
if (file) {
console.log(" invoking file: " + file);
// var sample = require('./engine-samples/' + file);
}
return answer;
});
}
function readLine(question, callback) {
rl.question('What do you think of Node.js? ', (answer) => { callback(answer); });
}
*/