zss-engine
Version:
Zero-runtime StyleSheet Engine
23 lines (22 loc) • 981 B
JavaScript
const isWindowDefined = typeof window !== 'undefined';
const isDocumentDefined = typeof document !== 'undefined';
export const isServer = !isWindowDefined || !isDocumentDefined;
export const isDevelopment = process.env.NODE_ENV === 'development';
export const isTestingDevelopment = process.env.NODE_ENV === 'test' || isDevelopment;
const exception = ['line-height', 'font-weight', 'opacity', 'scale', 'z-index', 'column-count', 'order', 'orphans', 'widows'];
export const applyCssValue = (value, cssProp) => {
if (typeof value === 'number') {
return exception.includes(cssProp) ? value.toString() : value + 'px';
}
return value;
};
export const camelToKebabCase = (property) => {
if (/^(ms|Moz|Webkit)/.test(property)) {
property = '-' + property;
}
return (property
.replace(/([A-Z]+)([0-9]+)/g, '$1$2')
.replace(/([a-z0-9])([A-Z])/g, '$1-$2')
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')
.toLowerCase());
};