clone.cjs 506 B

12345678910111213141516171819202122232425
  1. 'use strict';
  2. const List = require('./List.cjs');
  3. function clone(node) {
  4. const result = {};
  5. for (const key of Object.keys(node)) {
  6. let value = node[key];
  7. if (value) {
  8. if (Array.isArray(value) || value instanceof List.List) {
  9. value = value.map(clone);
  10. } else if (value.constructor === Object) {
  11. value = clone(value);
  12. }
  13. }
  14. result[key] = value;
  15. }
  16. return result;
  17. }
  18. exports.clone = clone;