You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
803 B
28 lines
803 B
var List = require('../utils/list'); |
|
|
|
module.exports = function createConvertors(walk) { |
|
return { |
|
fromPlainObject: function(ast) { |
|
walk(ast, { |
|
enter: function(node) { |
|
if (node.children && node.children instanceof List === false) { |
|
node.children = new List().fromArray(node.children); |
|
} |
|
} |
|
}); |
|
|
|
return ast; |
|
}, |
|
toPlainObject: function(ast) { |
|
walk(ast, { |
|
leave: function(node) { |
|
if (node.children && node.children instanceof List) { |
|
node.children = node.children.toArray(); |
|
} |
|
} |
|
}); |
|
|
|
return ast; |
|
} |
|
}; |
|
};
|
|
|