@twstyled/babel-preset
Version:
Babel plugin for twstyled -- the full-featured Tailwind CSS + CSS in JS Compiler
32 lines (31 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const stylis_1 = require("stylis");
function default_1(babel, options) {
return function processCssText(state, index, item) {
const { selector, cssText: rawCss } = item;
const templateState = {
cssText: rawCss || '',
className: item.className,
index,
item
};
options.stylisMiddleware.forEach((middleware) => {
middleware.enter(state, templateState);
});
templateState.cssText = stylis_1.serialize(stylis_1.compile(`${selector}{${rawCss}}`), stylis_1.middleware(options.stylisMiddleware
.map((middleware) => (element, index, children, callback) => {
middleware.stylis(state, templateState, element);
})
.concat([stylis_1.stringify])));
options.stylisMiddleware.forEach((middleware) => {
middleware.exit(state, templateState);
});
state.cssText += `${templateState.cssText}\n`;
return {
cssText: templateState.cssText,
className: templateState.className
};
};
}
exports.default = default_1;