Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor getting and setting declaration values into utils #5183

Merged
merged 2 commits into from Mar 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
17 changes: 4 additions & 13 deletions lib/rules/alpha-value-notation/index.js
Expand Up @@ -6,10 +6,12 @@ const _ = require('lodash');
const valueParser = require('postcss-value-parser');

const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const isStandardSyntaxValue = require('../../utils/isStandardSyntaxValue');
const optionsMatches = require('../../utils/optionsMatches');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');

const ruleName = 'alpha-value-notation';
Expand Down Expand Up @@ -43,7 +45,7 @@ function rule(primary, options, context) {

root.walkDecls((decl) => {
let needsFix = false;
const parsedValue = valueParser(getValue(decl));
const parsedValue = valueParser(getDeclarationValue(decl));

parsedValue.walk((node) => {
let alpha;
Expand Down Expand Up @@ -105,7 +107,7 @@ function rule(primary, options, context) {
});

if (needsFix) {
setValue(decl, parsedValue.toString());
setDeclarationValue(decl, parsedValue.toString());
}
});
};
Expand Down Expand Up @@ -153,17 +155,6 @@ function isNumber(value) {
return unit === '';
}

function getValue(decl) {
return decl.raws.value ? decl.raws.value.raw : decl.value;
}

function setValue(decl, value) {
if (decl.raws.value) decl.raws.value.raw = value;
else decl.value = value;

return decl;
}

rule.ruleName = ruleName;
rule.messages = messages;
module.exports = rule;
17 changes: 4 additions & 13 deletions lib/rules/color-function-notation/index.js
Expand Up @@ -5,8 +5,10 @@
const valueParser = require('postcss-value-parser');

const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');

const ruleName = 'color-function-notation';
Expand All @@ -29,7 +31,7 @@ function rule(primary, secondary, context) {

root.walkDecls((decl) => {
let needsFix = false;
const parsedValue = valueParser(getValue(decl));
const parsedValue = valueParser(getDeclarationValue(decl));

parsedValue.walk((node) => {
const { value, type, sourceIndex, nodes } = node;
Expand Down Expand Up @@ -83,7 +85,7 @@ function rule(primary, secondary, context) {
});

if (needsFix) {
setValue(decl, parsedValue.toString());
setDeclarationValue(decl, parsedValue.toString());
}
});
};
Expand All @@ -101,17 +103,6 @@ function hasCommas(node) {
return node.nodes && node.nodes.some((childNode) => isComma(childNode));
}

function getValue(decl) {
return decl.raws.value ? decl.raws.value.raw : decl.value;
}

function setValue(decl, value) {
if (decl.raws.value) decl.raws.value.raw = value;
else decl.value = value;

return decl;
}

rule.ruleName = ruleName;
rule.messages = messages;
module.exports = rule;
15 changes: 4 additions & 11 deletions lib/rules/color-hex-case/index.js
Expand Up @@ -5,8 +5,10 @@
const valueParser = require('postcss-value-parser');

const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');

const ruleName = 'color-hex-case';
Expand All @@ -30,7 +32,7 @@ function rule(expectation, options, context) {
}

root.walkDecls((decl) => {
const parsedValue = valueParser(getValue(decl));
const parsedValue = valueParser(getDeclarationValue(decl));
let needsFix = false;

parsedValue.walk((node) => {
Expand Down Expand Up @@ -61,7 +63,7 @@ function rule(expectation, options, context) {
});

if (needsFix) {
setValue(decl, parsedValue.toString());
setDeclarationValue(decl, parsedValue.toString());
}
});
};
Expand All @@ -75,15 +77,6 @@ function isHexColor({ type, value }) {
return type === 'word' && HEX.test(value);
}

function getValue(decl) {
return decl.raws.value ? decl.raws.value.raw : decl.value;
}

function setValue(decl, value) {
if (decl.raws.value) decl.raws.value.raw = value;
else decl.value = value;
}

rule.ruleName = ruleName;
rule.messages = messages;
module.exports = rule;
15 changes: 4 additions & 11 deletions lib/rules/color-hex-length/index.js
Expand Up @@ -5,8 +5,10 @@
const valueParser = require('postcss-value-parser');

const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');

const ruleName = 'color-hex-length';
Expand All @@ -30,7 +32,7 @@ function rule(expectation, _, context) {
}

root.walkDecls((decl) => {
const parsedValue = valueParser(getValue(decl));
const parsedValue = valueParser(getDeclarationValue(decl));
let needsFix = false;

parsedValue.walk((node) => {
Expand Down Expand Up @@ -68,7 +70,7 @@ function rule(expectation, _, context) {
});

if (needsFix) {
setValue(decl, parsedValue.toString());
setDeclarationValue(decl, parsedValue.toString());
}
});
};
Expand Down Expand Up @@ -113,15 +115,6 @@ function isHexColor({ type, value }) {
return type === 'word' && HEX.test(value);
}

function getValue(decl) {
return decl.raws.value ? decl.raws.value.raw : decl.value;
}

function setValue(decl, value) {
if (decl.raws.value) decl.raws.value.raw = value;
else decl.value = value;
}

rule.ruleName = ruleName;
rule.messages = messages;
module.exports = rule;
10 changes: 4 additions & 6 deletions lib/rules/declaration-bang-space-after/index.js
Expand Up @@ -4,7 +4,9 @@

const declarationBangSpaceChecker = require('../declarationBangSpaceChecker');
const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');
const whitespaceChecker = require('../../utils/whitespaceChecker');

Expand Down Expand Up @@ -36,7 +38,7 @@ function rule(expectation, options, context) {
fix: context.fix
? (decl, index) => {
let bangIndex = index - declarationValueIndex(decl);
const value = decl.raws.value ? decl.raws.value.raw : decl.value;
const value = getDeclarationValue(decl);
let target;
let setFixed;

Expand All @@ -45,11 +47,7 @@ function rule(expectation, options, context) {
// TODO: Issue #4985
// eslint-disable-next-line no-shadow
setFixed = (value) => {
if (decl.raws.value) {
decl.raws.value.raw = value;
} else {
decl.value = value;
}
setDeclarationValue(decl, value);
};
} else if (decl.important) {
target = decl.raws.important || ' !important';
Expand Down
10 changes: 4 additions & 6 deletions lib/rules/declaration-bang-space-before/index.js
Expand Up @@ -4,7 +4,9 @@

const declarationBangSpaceChecker = require('../declarationBangSpaceChecker');
const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');
const whitespaceChecker = require('../../utils/whitespaceChecker');

Expand Down Expand Up @@ -36,18 +38,14 @@ function rule(expectation, options, context) {
fix: context.fix
? (decl, index) => {
let bangIndex = index - declarationValueIndex(decl);
const value = decl.raws.value ? decl.raws.value.raw : decl.value;
const value = getDeclarationValue(decl);
let target;
let setFixed;

if (bangIndex < value.length) {
target = value;
setFixed = (val) => {
if (decl.raws.value) {
decl.raws.value.raw = val;
} else {
decl.value = val;
}
setDeclarationValue(decl, val);
};
} else if (decl.important) {
target = decl.raws.important || ' !important';
Expand Down
12 changes: 5 additions & 7 deletions lib/rules/declaration-block-semicolon-space-before/index.js
Expand Up @@ -3,8 +3,10 @@
'use strict';

const blockString = require('../../utils/blockString');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');
const whitespaceChecker = require('../../utils/whitespaceChecker');

Expand Down Expand Up @@ -48,15 +50,13 @@ function rule(expectation, options, context) {
lineCheckStr: blockString(parentRule),
err: (m) => {
if (context.fix) {
const value = decl.raws.value ? decl.raws.value.raw : decl.value;
const value = getDeclarationValue(decl);

if (expectation.startsWith('always')) {
if (decl.important) {
decl.raws.important = ' !important ';
} else if (decl.raws.value) {
decl.raws.value.raw = value.replace(/\s*$/, ' ');
} else {
decl.value = value.replace(/\s*$/, ' ');
setDeclarationValue(decl, value.replace(/\s*$/, ' '));
}

return;
Expand All @@ -65,10 +65,8 @@ function rule(expectation, options, context) {
if (expectation.startsWith('never')) {
if (decl.important) {
decl.raws.important = decl.raws.important.replace(/\s*$/, '');
} else if (decl.raws.value) {
decl.raws.value.raw = value.replace(/\s*$/, '');
} else {
decl.value = value.replace(/\s*$/, '');
setDeclarationValue(decl, value.replace(/\s*$/, ''));
}

return;
Expand Down
10 changes: 4 additions & 6 deletions lib/rules/function-max-empty-lines/index.js
Expand Up @@ -3,8 +3,10 @@
'use strict';

const _ = require('lodash');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');
const valueParser = require('postcss-value-parser');

Expand Down Expand Up @@ -41,7 +43,7 @@ function rule(max, options, context) {
return;
}

const stringValue = decl.raws.value ? decl.raws.value.raw : decl.value;
const stringValue = getDeclarationValue(decl);
const splittedValue = [];
let sourceIndexStart = 0;

Expand Down Expand Up @@ -88,11 +90,7 @@ function rule(max, options, context) {
splittedValue.reduce((acc, curr) => acc + curr[0] + curr[1], '') +
stringValue.slice(sourceIndexStart);

if (decl.raws.value) {
decl.raws.value.raw = updatedValue;
} else {
decl.value = updatedValue;
}
setDeclarationValue(decl, updatedValue);
}
});
};
Expand Down
12 changes: 4 additions & 8 deletions lib/rules/function-name-case/index.js
Expand Up @@ -4,11 +4,13 @@

const _ = require('lodash');
const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const isStandardSyntaxFunction = require('../../utils/isStandardSyntaxFunction');
const keywordSets = require('../../reference/keywordSets');
const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');
const valueParser = require('postcss-value-parser');

Expand Down Expand Up @@ -48,7 +50,7 @@ function rule(expectation, options, context) {

root.walkDecls((decl) => {
let needFix = false;
const parsed = valueParser(decl.raws.value ? decl.raws.value.raw : decl.value);
const parsed = valueParser(getDeclarationValue(decl));

parsed.walk((node) => {
if (node.type !== 'function' || !isStandardSyntaxFunction(node)) {
Expand Down Expand Up @@ -98,13 +100,7 @@ function rule(expectation, options, context) {
});

if (context.fix && needFix) {
const statement = parsed.toString();

if (decl.raws.value) {
decl.raws.value.raw = statement;
} else {
decl.value = statement;
}
setDeclarationValue(decl, parsed.toString());
}
});
};
Expand Down
11 changes: 4 additions & 7 deletions lib/rules/function-parentheses-newline-inside/index.js
Expand Up @@ -2,12 +2,13 @@

'use strict';

const _ = require('lodash');
const declarationValueIndex = require('../../utils/declarationValueIndex');
const getDeclarationValue = require('../../utils/getDeclarationValue');
const isSingleLineString = require('../../utils/isSingleLineString');
const isStandardSyntaxFunction = require('../../utils/isStandardSyntaxFunction');
const report = require('../../utils/report');
const ruleMessages = require('../../utils/ruleMessages');
const setDeclarationValue = require('../../utils/setDeclarationValue');
const validateOptions = require('../../utils/validateOptions');
const valueParser = require('postcss-value-parser');

Expand Down Expand Up @@ -39,7 +40,7 @@ function rule(expectation, options, context) {
}

let hasFixed = false;
const declValue = _.get(decl, 'raws.value.raw', decl.value);
const declValue = getDeclarationValue(decl);
const parsedValue = valueParser(declValue);

parsedValue.walk((valueNode) => {
Expand Down Expand Up @@ -124,11 +125,7 @@ function rule(expectation, options, context) {
});

if (hasFixed) {
if (!decl.raws.value) {
decl.value = parsedValue.toString();
} else {
decl.raws.value.raw = parsedValue.toString();
}
setDeclarationValue(decl, parsedValue.toString());
}

function complain(message, offset) {
Expand Down