@tdb/web
Version:
Common condiguration for serving a web-site and testing web-based UI components.
41 lines (31 loc) • 898 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (_ref) {
var t = _ref.types;
return {
visitor: {
JSXOpeningElement: function (path, _ref2) {
var file = _ref2.file;
file.set('hasJSX', true);
},
Program: {
enter: function (path, _ref3) {
var file = _ref3.file;
file.set('hasJSX', false);
},
exit: function (_ref4, _ref5) {
var node = _ref4.node;
var scope = _ref4.scope;
var file = _ref5.file;
if (!(file.get('hasJSX') && !scope.hasBinding('React'))) {
return;
}
var reactImportDeclaration = t.importDeclaration([t.importDefaultSpecifier(t.identifier('React'))], t.stringLiteral('react'));
node.body.unshift(reactImportDeclaration);
}
}
}
};
};