1234567891011121314151617181920212223242526272829303132 |
- import isReactCreateClassCall from './isReactCreateClassCall.js';
- import isReactForwardRefCall from './isReactForwardRefCall.js';
- import resolveToValue from './resolveToValue.js';
- export default function resolveHOC(path) {
- if (path.isCallExpression() &&
- !isReactCreateClassCall(path) &&
- !isReactForwardRefCall(path)) {
- const node = path.node;
- const argumentLength = node.arguments.length;
- if (argumentLength && argumentLength > 0) {
- const args = path.get('arguments');
- const firstArg = args[0];
-
-
- if (argumentLength > 1 &&
- (firstArg.isLiteral() ||
- firstArg.isObjectExpression() ||
- firstArg.isArrayExpression() ||
- firstArg.isSpreadElement())) {
- return resolveHOC(resolveToValue(args[argumentLength - 1]));
- }
- return resolveHOC(resolveToValue(firstArg));
- }
- }
- return path;
- }
|