You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
930 B
JavaScript
35 lines
930 B
JavaScript
/* eslint no-param-reassign: off */
|
|
|
|
const afterPattern = /:$/;
|
|
const beforePattern = /^:(\s+)?/;
|
|
// const bracketsPattern = /\{/;
|
|
|
|
module.exports = (node) => {
|
|
const { name, params = '' } = node;
|
|
|
|
// situations like @page :last { color: red } should default to the built-in AtRule
|
|
// LESS variables are @name : value; < note that for them to be valid LESS vars, they must end in
|
|
// a semicolon.
|
|
|
|
if (node.name.slice(-1) !== ':') {
|
|
return;
|
|
}
|
|
|
|
if (afterPattern.test(name)) {
|
|
const [match] = name.match(afterPattern);
|
|
|
|
node.name = name.replace(match, '');
|
|
node.raws.afterName = match + (node.raws.afterName || '');
|
|
node.variable = true;
|
|
node.value = node.params;
|
|
}
|
|
|
|
if (beforePattern.test(params)) {
|
|
const [match] = params.match(beforePattern);
|
|
|
|
node.value = params.replace(match, '');
|
|
node.raws.afterName = (node.raws.afterName || '') + match;
|
|
node.variable = true;
|
|
}
|
|
};
|