| /* 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; |
| } |
| }; |