react-native-web-internals
Version:
React Native for Web
47 lines (46 loc) • 1.61 kB
JavaScript
var invalidShortforms = {
background: !0,
borderBottom: !0,
borderLeft: !0,
borderRight: !0,
borderTop: !0,
font: !0,
grid: !0,
outline: !0,
textDecoration: !0
},
invalidMultiValueShortforms = {
flex: !0,
margin: !0,
padding: !0,
borderColor: !0,
borderRadius: !0,
borderStyle: !0,
borderWidth: !0,
marginHorizontal: !0,
marginVertical: !0,
paddingHorizontal: !0,
paddingVertical: !0,
overflow: !0,
overscrollBehavior: !0,
backgroundPosition: !0
};
function error(message) {
console.error(message);
}
function validate(obj) {
for (var k in obj) {
var prop = k.trim(),
value = obj[prop],
isInvalid = !1;
if (value !== null) {
if (typeof value == "string" && value.indexOf("!important") > -1) error(`Invalid style declaration "${prop}:${value}". Values cannot include "!important"`), isInvalid = !0;else {
var suggestion = "";
prop === "animation" || prop === "animationName" ? (suggestion = 'Did you mean "animationKeyframes"?', isInvalid = !0) : prop === "direction" ? (suggestion = 'Did you mean "writingDirection"?', isInvalid = !0) : prop === "verticalAlign" ? (suggestion = 'Did you mean "textAlignVertical"?', isInvalid = !0) : invalidShortforms[prop] ? (suggestion = "Please use long-form properties.", isInvalid = !0) : invalidMultiValueShortforms[prop], suggestion !== "" && error(`Invalid style property of "${prop}". ${suggestion}`);
}
isInvalid && delete obj[k];
}
}
}
export { validate };
//# sourceMappingURL=validate.native.js.map