| 'use strict'; |
| |
| const List = require('../utils/List.cjs'); |
| |
| function createConvertor(walk) { |
| return { |
| fromPlainObject(ast) { |
| walk(ast, { |
| enter(node) { |
| if (node.children && node.children instanceof List.List === false) { |
| node.children = new List.List().fromArray(node.children); |
| } |
| } |
| }); |
| |
| return ast; |
| }, |
| toPlainObject(ast) { |
| walk(ast, { |
| leave(node) { |
| if (node.children && node.children instanceof List.List) { |
| node.children = node.children.toArray(); |
| } |
| } |
| }); |
| |
| return ast; |
| } |
| }; |
| } |
| |
| exports.createConvertor = createConvertor; |