@17media/marionette
Advanced tools
Comparing version
156
client.js
@@ -63,63 +63,10 @@ /******/ (function(modules) { // webpackBootstrap | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 5); | ||
/******/ return __webpack_require__(__webpack_require__.s = 0); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ({ | ||
/***/ 16: | ||
/***/ (function(module, exports) { | ||
const cachedDisplayNames = new WeakMap(); | ||
const getDisplayName = (component) => { | ||
const type = component._currentElement && component._currentElement.type; | ||
if (!type) { | ||
return null; | ||
} else if (typeof type === 'string') { | ||
return type; | ||
} | ||
if (cachedDisplayNames.has(type)) { | ||
return cachedDisplayNames.get(type); | ||
} | ||
if (typeof type.displayName === 'string') { | ||
return type.displayName; | ||
} | ||
return type.name; | ||
}; | ||
const traverseComponentTree = (component, filter, result = []) => { | ||
if (!component || !component._currentElement) { | ||
return result; | ||
} | ||
const ret = [...result]; | ||
if (filter(component)) { | ||
ret.push(component); | ||
} | ||
if (component._renderedChildren && typeof component._renderedChildren === 'object') { | ||
return [].concat(...Object.values(component._renderedChildren) | ||
.map(com => traverseComponentTree(com, filter, ret))); | ||
} | ||
return traverseComponentTree(component._renderedComponent, filter, ret); | ||
}; | ||
module.exports = { | ||
traverseComponentTree, | ||
getDisplayName, | ||
}; | ||
/***/ }), | ||
/***/ 5: | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, exports, __webpack_require__) { | ||
const { traverseComponentTree, getDisplayName } = __webpack_require__(16); | ||
const { traverseComponentTree, getDisplayName } = __webpack_require__(1); | ||
@@ -134,33 +81,36 @@ // Keep a reference to the real devtools | ||
findAll(names) { | ||
const component = names | ||
findComponents(names) { | ||
const components = names | ||
.reduce((flatten, name) => [...flatten, ...name.split(' ')], []) | ||
.reduce((node, name) => ( | ||
(traverseComponentTree(node, n => getDisplayName(n) === name) || [])[0] | ||
), Object.values(this.renderer.Mount._instancesByReactRootID)[0]); | ||
.reduce((nodes, name) => [].concat(...nodes.map(node => ( | ||
traverseComponentTree(node, n => getDisplayName(n) === name) | ||
))), Object.values(this.renderer.Mount._instancesByReactRootID)); | ||
const dom = traverseComponentTree( | ||
component, | ||
n => typeof n._currentElement.type === 'string' | ||
); | ||
return Array.from(new Set(components)); | ||
} | ||
if (!dom || !dom.length) { | ||
return null; | ||
} | ||
findAll(names) { | ||
const components = this.findComponents(names); | ||
return dom; | ||
const doms = components | ||
.map(component => traverseComponentTree( | ||
component, | ||
n => typeof n._currentElement.type === 'string' | ||
)[0]); | ||
return doms; | ||
} | ||
findNodeAll(...names) { | ||
const dom = this.findAll(names); | ||
const doms = this.findAll(names); | ||
if (!dom) { | ||
return []; | ||
if (!doms || !doms.length) { | ||
return null; | ||
} | ||
return dom.map(this.renderer.ComponentTree.getNodeFromInstance); | ||
return doms.map(this.renderer.ComponentTree.getNodeFromInstance); | ||
} | ||
findNode(...names) { | ||
const dom = this.findAll(names); | ||
const dom = this.findAll(names)[0]; | ||
@@ -171,3 +121,3 @@ if (!dom) { | ||
return this.renderer.ComponentTree.getNodeFromInstance(dom[0]); | ||
return this.renderer.ComponentTree.getNodeFromInstance(dom); | ||
} | ||
@@ -197,4 +147,54 @@ } | ||
/***/ }), | ||
/* 1 */ | ||
/***/ (function(module, exports) { | ||
const cachedDisplayNames = new WeakMap(); | ||
const getDisplayName = (component) => { | ||
const type = component._currentElement && component._currentElement.type; | ||
if (!type) { | ||
return null; | ||
} else if (typeof type === 'string') { | ||
return type; | ||
} | ||
if (cachedDisplayNames.has(type)) { | ||
return cachedDisplayNames.get(type); | ||
} | ||
if (typeof type.displayName === 'string') { | ||
return type.displayName; | ||
} | ||
return type.name; | ||
}; | ||
const traverseComponentTree = (component, filter, result = []) => { | ||
if (!component || !component._currentElement) { | ||
return result; | ||
} | ||
const ret = [...result]; | ||
if (filter(component)) { | ||
ret.push(component); | ||
} | ||
if (component._renderedChildren && typeof component._renderedChildren === 'object') { | ||
return [].concat(...Object.values(component._renderedChildren) | ||
.map(com => traverseComponentTree(com, filter, ret))); | ||
} | ||
return traverseComponentTree(component._renderedComponent, filter, ret); | ||
}; | ||
module.exports = { | ||
traverseComponentTree, | ||
getDisplayName, | ||
}; | ||
/***/ }) | ||
/******/ }); | ||
/******/ ]); |
{ | ||
"name": "@17media/marionette", | ||
"version": "0.0.1", | ||
"version": "0.1.0", | ||
"description": "React utility binding for puppeteer", | ||
@@ -5,0 +5,0 @@ "repository": "kevin940726/marionette", |
99385
0.15%171
1.18%