added all files to project

This commit is contained in:
2022-03-10 10:36:59 +01:00
parent 09dd957b33
commit 46a936d7de
25351 changed files with 3883356 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
# selector-attribute-quotes
Require or disallow quotes for attribute values.
<!-- prettier-ignore -->
```css
[target="_blank"] {}
/** ↑ ↑
* These quotes */
```
The [`fix` option](../../../docs/user-guide/usage/options.md#fix) can automatically fix most of the problems reported by this rule.
## Options
`string`: `"always"|"never"`
### `"always"`
Attribute values _must always_ be quoted.
The following patterns are considered violations:
<!-- prettier-ignore -->
```css
[title=flower] {}
```
<!-- prettier-ignore -->
```css
[class^=top] {}
```
The following patterns are _not_ considered violations:
<!-- prettier-ignore -->
```css
[title] {}
```
<!-- prettier-ignore -->
```css
[target="_blank"] {}
```
<!-- prettier-ignore -->
```css
[class|="top"] {}
```
<!-- prettier-ignore -->
```css
[title~='text'] {}
```
<!-- prettier-ignore -->
```css
[data-attribute='component'] {}
```
### `"never"`
Attribute values _must never_ be quoted.
The following patterns are considered violations:
<!-- prettier-ignore -->
```css
[target="_blank"] {}
```
<!-- prettier-ignore -->
```css
[class|="top"] {}
```
<!-- prettier-ignore -->
```css
[title~='text'] {}
```
<!-- prettier-ignore -->
```css
[data-attribute='component'] {}
```
The following patterns are _not_ considered violations:
<!-- prettier-ignore -->
```css
[title] {}
```
<!-- prettier-ignore -->
```css
[title=flower] {}
```
<!-- prettier-ignore -->
```css
[class^=top] {}
```
+94
View File
@@ -0,0 +1,94 @@
// @ts-nocheck
'use strict';
const getRuleSelector = require('../../utils/getRuleSelector');
const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule');
const parseSelector = require('../../utils/parseSelector');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const validateOptions = require('../../utils/validateOptions');
const ruleName = 'selector-attribute-quotes';
const messages = ruleMessages(ruleName, {
expected: (value) => `Expected quotes around "${value}"`,
rejected: (value) => `Unexpected quotes around "${value}"`,
});
const acceptedQuoteMark = '"';
function rule(expectation, secondary, context) {
return (root, result) => {
const validOptions = validateOptions(result, ruleName, {
actual: expectation,
possible: ['always', 'never'],
});
if (!validOptions) {
return;
}
root.walkRules((ruleNode) => {
if (!isStandardSyntaxRule(ruleNode)) {
return;
}
if (!ruleNode.selector.includes('[') || !ruleNode.selector.includes('=')) {
return;
}
parseSelector(getRuleSelector(ruleNode), result, ruleNode, (selectorTree) => {
let selectorFixed = false;
selectorTree.walkAttributes((attributeNode) => {
if (!attributeNode.operator) {
return;
}
if (!attributeNode.quoted && expectation === 'always') {
if (context.fix) {
selectorFixed = true;
attributeNode.quoteMark = acceptedQuoteMark;
} else {
complain(
messages.expected(attributeNode.value),
attributeNode.sourceIndex + attributeNode.offsetOf('value'),
);
}
}
if (attributeNode.quoted && expectation === 'never') {
if (context.fix) {
selectorFixed = true;
attributeNode.quoteMark = null;
} else {
complain(
messages.rejected(attributeNode.value),
attributeNode.sourceIndex + attributeNode.offsetOf('value'),
);
}
}
});
if (selectorFixed) {
ruleNode.selector = selectorTree.toString();
}
});
function complain(message, index) {
report({
message,
index,
result,
ruleName,
node: ruleNode,
});
}
});
};
}
rule.ruleName = ruleName;
rule.messages = messages;
module.exports = rule;