@twstyled/babel-preset
Version:
Babel plugin for twstyled -- the full-featured Tailwind CSS + CSS in JS Compiler
28 lines (27 loc) • 1.26 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const class_utilities_1 = __importDefault(require("@xwind/class-utilities"));
const core_1 = __importDefault(require("@xwind/core"));
const util_1 = require("@twstyled/util");
let $transformer;
function getTailwindTransformer(options) {
const twConfigPath = util_1.getTwConfigPath(options.configPath);
const { twConfig, isNewTwConfig } = util_1.getTwConfigCache(twConfigPath);
if (!$transformer || isNewTwConfig) {
const { screens, variants } = core_1.default(twConfig);
const twClassesUtils = class_utilities_1.default(twConfig.separator, [
...screens,
...variants
]);
$transformer = function transformClasses(twDeclarations, state) {
const serializedTwClasses = twClassesUtils.serializer(twDeclarations);
state.file.metadata.twclasses = twClassesUtils.composer(serializedTwClasses, state.file.metadata.twclasses || []);
return serializedTwClasses;
};
}
return $transformer;
}
exports.default = getTailwindTransformer;