-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
37 lines (26 loc) · 781 Bytes
/
Copy pathindex.js
File metadata and controls
37 lines (26 loc) · 781 Bytes
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
"use strict";
var Renderer = require('./lib/renderer');
var Interpreter = require('./lib/interpreter');
var renderers = {};
var jsx = {
register: function registerRenderer(name, config) {
name = name.toLowerCase();
var interpreter = new Interpreter(name, config.tags);
var renderer = new Renderer(interpreter, {
before: config.before,
after: config.after,
process: config.process
});
renderers[name] = renderer;
return renderer;
},
render: function renderJSXTree(tree, renderer) {
renderer = renderer.toLowerCase();
renderer = renderer && renderers[renderer];
if (!renderer) {
throw new Error('Renderer [' + renderer + '] not found');
}
return renderer.render(tree);
}
};
module.exports = jsx;