@crossed/styled
Version:
A universal & performant styling library for React Native, Next.js & React
32 lines (31 loc) • 928 B
JavaScript
import { convertKeyToCss, normalizeUnitPixel } from "./utils";
const BasePlugin = {
name: "BasePlugin",
test: ["base"],
apply: ({ addClassname, styles, isWeb, cache }) => {
const old = cache.get(styles);
if (old) {
addClassname(old);
return;
}
const body = Object.keys(styles).reduce(
(acc, key) => {
var _a;
const value = styles[key];
const valueNormalized = normalizeUnitPixel(key, value, isWeb);
acc[`${convertKeyToCss(key)}-[${typeof valueNormalized === "number" ? valueNormalized : (_a = valueNormalized == null ? void 0 : valueNormalized.replace) == null ? void 0 : _a.call(valueNormalized, / /g, "-")}]`] = {
[key]: valueNormalized
};
return acc;
},
{}
);
const result = { body };
cache.set(styles, result);
addClassname(result);
}
};
export {
BasePlugin
};
//# sourceMappingURL=Base.js.map