You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
665 B
24 lines
665 B
import toAST from 'to-ast'; // eslint-disable-line import/no-extraneous-dependencies |
|
import JSXExpressionContainerMock from './JSXExpressionContainerMock'; |
|
|
|
export default function JSXAttributeMock(prop, value, isExpressionContainer = false) { |
|
let astValue; |
|
if (value && value.type !== undefined) { |
|
astValue = value; |
|
} else { |
|
astValue = toAST(value); |
|
} |
|
let attributeValue = astValue; |
|
if (isExpressionContainer || astValue.type !== 'Literal') { |
|
attributeValue = JSXExpressionContainerMock(astValue); |
|
} |
|
|
|
return { |
|
type: 'JSXAttribute', |
|
name: { |
|
type: 'JSXIdentifier', |
|
name: prop, |
|
}, |
|
value: attributeValue, |
|
}; |
|
}
|
|
|