1 |
|
2 |
|
3 | const afterPattern = /:$/;
|
4 | const beforePattern = /^:(\s+)?/;
|
5 |
|
6 |
|
7 | module.exports = (node) => {
|
8 | const { name, params = '' } = node;
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | if (node.name.slice(-1) !== ':') {
|
15 | return;
|
16 | }
|
17 |
|
18 | if (afterPattern.test(name)) {
|
19 | const [match] = name.match(afterPattern);
|
20 |
|
21 | node.name = name.replace(match, '');
|
22 | node.raws.afterName = match + (node.raws.afterName || '');
|
23 | node.variable = true;
|
24 | node.value = node.params;
|
25 | }
|
26 |
|
27 | if (beforePattern.test(params)) {
|
28 | const [match] = params.match(beforePattern);
|
29 |
|
30 | node.value = params.replace(match, '');
|
31 | node.raws.afterName = (node.raws.afterName || '') + match;
|
32 | node.variable = true;
|
33 | }
|
34 | };
|