0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-16 06:02:41 +00:00

Merge pull request #4020 from naturalcrit/FixStyleLintImport

Fix StyleLint require to import
This commit is contained in:
Trevor Buckner
2025-01-31 13:42:19 -05:00
committed by GitHub
4 changed files with 104 additions and 104 deletions

View File

@@ -1,5 +1,5 @@
const stylelint = require('stylelint'); import stylelint from 'stylelint';
const { isNumber } = require('stylelint/lib/utils/validateTypes.cjs'); import { isNumber } from 'stylelint/lib/utils/validateTypes.mjs';
const { report, ruleMessages, validateOptions } = stylelint.utils; const { report, ruleMessages, validateOptions } = stylelint.utils;
const ruleName = 'naturalcrit/declaration-block-multi-line-min-declarations'; const ruleName = 'naturalcrit/declaration-block-multi-line-min-declarations';
@@ -7,9 +7,8 @@ const messages = ruleMessages(ruleName, {
expected : (decls)=>`Rule with ${decls} declaration${decls == 1 ? '' : 's'} should be single line`, expected : (decls)=>`Rule with ${decls} declaration${decls == 1 ? '' : 's'} should be single line`,
}); });
const ruleFunction = (primaryOption, secondaryOptionObject, context)=>{
module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOption, secondaryOptionObject, context) { return (postcssRoot, postcssResult)=>{
return function lint(postcssRoot, postcssResult) {
const validOptions = validateOptions( const validOptions = validateOptions(
postcssResult, postcssResult,
@@ -20,26 +19,23 @@ module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOpti
} }
); );
if(!validOptions) { //If the options are invalid, don't lint if(!validOptions) //If the options are invalid, don't lint
return; return;
}
const isAutoFixing = Boolean(context.fix); const isAutoFixing = Boolean(context.fix);
postcssRoot.walkRules((rule)=>{ //Iterate CSS rules postcssRoot.walkRules((rule)=>{ //Iterate CSS rules
//Apply rule only if all children are decls (no further nested rules) //Apply rule only if all children are decls (no further nested rules)
if(rule.nodes.length > primaryOption || !rule.nodes.every((node)=>node.type === 'decl')) { if(rule.nodes.length > primaryOption || !rule.nodes.every((node)=>node.type === 'decl'))
return; return;
}
//Ignore if already one line //Ignore if already one line
if(!rule.nodes.some((node)=>node.raws.before.includes('\n')) && !rule.raws.after.includes('\n')) if(!rule.nodes.some((node)=>node.raws.before.includes('\n')) && !rule.raws.after.includes('\n'))
return; return;
if(isAutoFixing) { //We are in “fix” mode if(isAutoFixing) { //We are in “fix” mode
rule.each((decl)=>{ rule.each((decl)=>decl.raws.before = ' ');
decl.raws.before = ' ';
});
rule.raws.after = ' '; rule.raws.after = ' ';
} else { } else {
report({ report({
@@ -52,7 +48,9 @@ module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOpti
} }
}); });
}; };
}); };
module.exports.ruleName = ruleName; ruleFunction.ruleName = ruleName;
module.exports.messages = messages; ruleFunction.messages = messages;
export default stylelint.createPlugin(ruleName, ruleFunction);

View File

@@ -1,31 +1,28 @@
const stylelint = require('stylelint'); import stylelint from 'stylelint';
const { report, ruleMessages, validateOptions } = stylelint.utils; const { report, ruleMessages, validateOptions } = stylelint.utils;
const ruleName = 'naturalcrit/declaration-colon-align'; const ruleName = 'naturalcrit/declaration-colon-align';
const messages = ruleMessages(ruleName, { const messages = ruleMessages(ruleName, {
expected : (rule)=>`Expected colons aligned within rule "${rule}"`, expected : (rule)=>`Expected colons aligned within rule "${rule}"`,
}); });
const ruleFunction = (primaryOption, secondaryOptionObject, context)=>{
module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOption, secondaryOptionObject, context) { return (postcssRoot, postcssResult)=>{
return function lint(postcssRoot, postcssResult) {
const validOptions = validateOptions( const validOptions = validateOptions(
postcssResult, postcssResult,
ruleName, ruleName,
{ {
actual : primaryOption, actual : primaryOption,
possible : [ possible : [true, false]
true,
false
]
} }
); );
if(!validOptions) { //If the options are invalid, don't lint if(!validOptions) // If the options are invalid, don't lint
return; return;
}
const isAutoFixing = Boolean(context.fix); const isAutoFixing = Boolean(context.fix);
postcssRoot.walkRules((rule)=>{ // Iterate CSS rules postcssRoot.walkRules((rule)=>{ // Iterate CSS rules
let maxColonPos = 0; let maxColonPos = 0;
@@ -36,13 +33,16 @@ module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOpti
return; return;
const colonPos = declaration.prop.length + declaration.raws.between.indexOf(':'); const colonPos = declaration.prop.length + declaration.raws.between.indexOf(':');
if(maxColonPos > 0 && colonPos != maxColonPos) {
if(maxColonPos > 0 && colonPos != maxColonPos)
misaligned = true; misaligned = true;
}
maxColonPos = Math.max(maxColonPos, colonPos); maxColonPos = Math.max(maxColonPos, colonPos);
}); });
if(misaligned) { if(!misaligned)
return;
if(isAutoFixing) { // We are in “fix” mode if(isAutoFixing) { // We are in “fix” mode
rule.each((declaration)=>{ rule.each((declaration)=>{
if(declaration.type != 'decl') if(declaration.type != 'decl')
@@ -59,10 +59,11 @@ module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOpti
word : rule.selector, // Which exact word caused the error? This positions the error properly word : rule.selector, // Which exact word caused the error? This positions the error properly
}); });
} }
}
}); });
}; };
}); };
module.exports.ruleName = ruleName; ruleFunction.ruleName = ruleName;
module.exports.messages = messages; ruleFunction.messages = messages;
export default stylelint.createPlugin(ruleName, ruleFunction);

View File

@@ -1,5 +1,5 @@
const stylelint = require('stylelint'); import stylelint from 'stylelint';
const { isNumber } = require('stylelint/lib/utils/validateTypes.cjs'); import { isNumber } from 'stylelint/lib/utils/validateTypes.mjs';
const { report, ruleMessages, validateOptions } = stylelint.utils; const { report, ruleMessages, validateOptions } = stylelint.utils;
const ruleName = 'naturalcrit/declaration-colon-min-space-before'; const ruleName = 'naturalcrit/declaration-colon-min-space-before';
@@ -7,9 +7,8 @@ const messages = ruleMessages(ruleName, {
expected : (num)=>`Expected at least ${num} space${num == 1 ? '' : 's'} before ":"` expected : (num)=>`Expected at least ${num} space${num == 1 ? '' : 's'} before ":"`
}); });
const ruleFunction = (primaryOption, secondaryOptionObject, context)=>{
module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOption, secondaryOptionObject, context) { return (postcssRoot, postcssResult)=>{
return function lint(postcssRoot, postcssResult) {
const validOptions = validateOptions( const validOptions = validateOptions(
postcssResult, postcssResult,
@@ -30,9 +29,9 @@ module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOpti
const between = decl.raws.between; const between = decl.raws.between;
const colonIndex = between.indexOf(':'); const colonIndex = between.indexOf(':');
if(between.slice(0, colonIndex).length >= primaryOption) { if(between.slice(0, colonIndex).length >= primaryOption)
return; return;
}
if(isAutoFixing) { //We are in “fix” mode if(isAutoFixing) { //We are in “fix” mode
decl.raws.between = between.slice(0, colonIndex).replace(/\s*$/, ' '.repeat(primaryOption)) + between.slice(colonIndex); decl.raws.between = between.slice(0, colonIndex).replace(/\s*$/, ' '.repeat(primaryOption)) + between.slice(colonIndex);
} else { } else {
@@ -46,7 +45,9 @@ module.exports = stylelint.createPlugin(ruleName, function getPlugin(primaryOpti
} }
}); });
}; };
}); };
module.exports.ruleName = ruleName; ruleFunction.ruleName = ruleName;
module.exports.messages = messages; ruleFunction.messages = messages;
export default stylelint.createPlugin(ruleName, ruleFunction);