Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | 3x 3x 32x 3x 38x 38x 38x 38x 50x 50x 50x 5x 45x 5x 40x 1x 39x 1x 38x 3x 35x 19x 16x | import { allProps } from "react-native-known-styling-properties";
import { utils } from "stylelint";
import {
isCustomProperty,
isStandardSyntaxDeclaration,
isStandardSyntaxProperty,
isString,
kebabCase,
namespace,
optionsMatches
} from "../../utils";
export const ruleName = namespace("style-property-no-unknown");
export const messages = utils.ruleMessages(ruleName, {
rejected: (property) => `Unexpected unknown property "${property}"`
});
const props = allProps.map(kebabCase);
export default function (actual, options) {
return function (root, result) {
const validOptions = utils.validateOptions(
result,
ruleName,
{
actual
},
{
actual: options,
possible: {
ignoreProperties: [isString]
},
optional: true
}
);
Iif (!validOptions) {
return;
}
root.walkDecls((decl) => {
const prop = decl.prop;
const value = decl.value;
if (kebabCase(prop) === kebabCase(value)) {
return;
}
if (!isStandardSyntaxProperty(prop)) {
return;
}
if (!isStandardSyntaxDeclaration(decl)) {
return;
}
if (isCustomProperty(prop)) {
return;
}
if (optionsMatches(options, "ignoreProperties", prop)) {
return;
}
if (props.indexOf(prop.toLowerCase()) !== -1) {
return;
}
utils.report({
message: messages.rejected(prop),
node: decl,
result,
ruleName
});
});
};
}
|