babel-plugin-styled-components
Version:
Improve the debugging experience and add server-side rendering support to styled-components
40 lines (39 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _pluginSyntaxJsx = _interopRequireDefault(require("@babel/plugin-syntax-jsx"));
var _assignStyledRequired = _interopRequireDefault(require("./visitors/assignStyledRequired"));
var _transpileCssProp = _interopRequireDefault(require("./visitors/transpileCssProp"));
var _process = require("./visitors/process");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _default({
types: t
}) {
const transpileCssPropVisit = (0, _transpileCssProp.default)(t);
const assignStyledRequiredVisit = (0, _assignStyledRequired.default)(t);
const processCallExpressionVisit = (0, _process.processCallExpression)(t);
const processTaggedTemplateVisit = (0, _process.processTaggedTemplate)(t);
return {
inherits: _pluginSyntaxJsx.default,
visitor: {
Program(path, state) {
path.traverse({
JSXAttribute(path, state) {
transpileCssPropVisit(path, state);
},
VariableDeclarator(path, state) {
assignStyledRequiredVisit(path, state);
}
}, state);
},
CallExpression(path, state) {
processCallExpressionVisit(path, state);
},
TaggedTemplateExpression(path, state) {
processTaggedTemplateVisit(path, state);
}
}
};
}