aboutsummaryrefslogtreecommitdiff
path: root/node_modules/espurify/lib/clone-ast.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-03-27 21:01:33 +0100
committerFlorian Dold <florian.dold@gmail.com>2019-03-27 21:01:33 +0100
commitcc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch)
tree92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/espurify/lib/clone-ast.js
parent3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff)
remove node_modules
Diffstat (limited to 'node_modules/espurify/lib/clone-ast.js')
-rw-r--r--node_modules/espurify/lib/clone-ast.js84
1 files changed, 0 insertions, 84 deletions
diff --git a/node_modules/espurify/lib/clone-ast.js b/node_modules/espurify/lib/clone-ast.js
deleted file mode 100644
index f6804e716..000000000
--- a/node_modules/espurify/lib/clone-ast.js
+++ /dev/null
@@ -1,84 +0,0 @@
-'use strict';
-
-var isArray = require('core-js/library/fn/array/is-array');
-var objectKeys = require('core-js/library/fn/object/keys');
-var indexOf = require('core-js/library/fn/array/index-of');
-var Map = require('core-js/library/fn/map');
-var reduce = require('core-js/library/fn/array/reduce');
-
-module.exports = function cloneWithWhitelist (astWhiteList) {
- var whitelist = reduce(objectKeys(astWhiteList), function (props, key) {
- var propNames = astWhiteList[key];
- var prepend = (indexOf(propNames, 'type') === -1) ? ['type'] : [];
- props[key] = prepend.concat(propNames || []);
- return props;
- }, {});
-
- function cloneNodeOrObject (obj, seen) {
- var props = obj.type ? whitelist[obj.type] : null;
- if (props) {
- return cloneNode(obj, props, seen);
- } else {
- return cloneObject(obj, seen);
- }
- }
-
- function cloneArray (ary, seen) {
- var i = ary.length;
- var clone = [];
- while (i--) {
- clone[i] = cloneOf(ary[i], seen);
- }
- return clone;
- }
-
- function cloneNode (node, props, seen) {
- var i, len, key;
- var clone = {};
- for (i = 0, len = props.length; i < len; i += 1) {
- key = props[i];
- if (node.hasOwnProperty(key)) {
- clone[key] = cloneOf(node[key], seen);
- }
- }
- return clone;
- }
-
- function cloneObject (obj, seen) {
- var props = objectKeys(obj);
- var i, len, key, value;
- var clone = {};
- for (i = 0, len = props.length; i < len; i += 1) {
- key = props[i];
- value = obj[key];
- if (seen.has(value)) {
- continue;
- }
- clone[key] = cloneOf(value, seen);
- }
- return clone;
- }
-
- function cloneOf (val, seen) {
- if (typeof val === 'object' && val !== null) {
- seen.set(val, true);
- if (val instanceof RegExp) {
- return new RegExp(val);
- } else if (isArray(val)) {
- return cloneArray(val, seen);
- } else {
- return cloneNodeOrObject(val, seen);
- }
- } else {
- return val;
- }
- }
-
- function cloneRoot (obj) {
- var seen = new Map();
- seen.set(obj, true);
- return cloneNodeOrObject(obj, seen);
- }
-
- return cloneRoot;
-};