UNPKG

992 BJavaScriptView Raw
1'use strict';
2
3/* Dependencies. */
4var has = require('has');
5
6/* Expose. */
7module.exports = one;
8
9/* Handlers. */
10var handlers = {};
11
12handlers.root = require('./all');
13handlers.heading = require('./types/heading');
14handlers.paragraph = require('./types/paragraph');
15handlers.comment = require('./types/comment');
16
17handlers.text = require('./types/text');
18handlers.strong = require('./types/strong');
19handlers.emphasis = require('./types/emphasis');
20handlers.delete = require('./types/delete');
21handlers.inlineCode = require('./types/inlinecode');
22handlers.blockquote = require('./types/blockquote');
23handlers.thematicBreak = require('./types/thematic-break');
24
25/* Stringify `node`. */
26function one(ctx, node, index, parent) {
27 var type = node && node.type;
28
29 if (!type) {
30 throw new Error('Expected node, not `' + node + '`');
31 }
32
33 if (!has(handlers, type)) {
34 throw new Error('Cannot compile unknown node `' + type + '`');
35 }
36
37 return handlers[type](ctx, node, index, parent);
38}
\No newline at end of file