-
Notifications
You must be signed in to change notification settings - Fork 5
/
demo.js
49 lines (44 loc) · 1.14 KB
/
demo.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
var Gel = require('./'),
gel = new Gel(),
crel = require('crel'),
input,
context,
output,
fns,
ui = crel('div',
crel('h1', 'Gel tester (shift+enter to run)'),
fns = crel('div', {'class':'functions'},
crel('h2', 'Functions')
),
crel('div', {'class':'halfWidth'},
crel('h2', 'Input (Gel)'),
input = crel('textarea')
),
crel('div', {'class':'halfWidth'},
crel('h2', 'Context (JSON)'),
context = crel('textarea')
),
crel('h2', 'Output'),
output = crel('pre')
);
Object.keys(gel.scope).map(function(fnName){
crel(fns,
crel('div', fnName)
);
});
window.gel = gel;
function run(event){
if(event.which === 13 && event.shiftKey){
try{
output.innerText = gel.evaluate(input.value, JSON.parse(context.value || '{}'));
}catch(error){
output.innerText = error;
}
event.preventDefault();
}
}
input.addEventListener('keypress', run);
context.addEventListener('keypress', run);
window.onload = function () {
document.body.appendChild(ui);
};