-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathrepl.mjs
executable file
·29 lines (27 loc) · 970 Bytes
/
repl.mjs
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
#!/usr/bin/env node
import promptSync from 'prompt-sync'
import {SplitQueries} from './parser/SplitQueries.mjs';
import {select,from,outerJoin,innerJoin,orderBy,groupBy,insert,deleteFrom,deleteId,
updateFrom,updateId,count,database} from './lib/fake-sql.mjs';
import {users} from './lib/users-database.mjs';
import {heroes} from './lib/heroes-database.mjs';
database['users'] = users
database['heroes'] = heroes
const parseScriptWithSplitQueries = (script) => {
const result = SplitQueries(script);
try {
result.forEach(query => {
console.log(`running: ${query}`);
const result = eval(query);
console.table(result);
})
} catch(err) {
console.error(err.message);
}
const query = prompt('stupid query > ')
parseScriptWithSplitQueries(query)
}
console.log("Welcome to Stupid Client! Type Ctrl+C to exit.");
const prompt = promptSync({sigint: true});
const query = prompt('stupid query > ')
parseScriptWithSplitQueries(query)