Skip to content

Commit 1991f1e

Browse files
committed
Gather adding indexes to node into one function
1 parent 4c4c198 commit 1991f1e

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

index.js

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,23 @@ function getOrderProperty(node, order) {
124124
return orderProperty;
125125
}
126126

127+
function addIndexesToNode(node, index, order) {
128+
// Index to place the nodes that shouldn't be sorted
129+
var lastGroupIndex = order['...'] ? order['...'].group : Infinity;
130+
var lastPropertyIndex = order['...'] ? order['...'].prop : Infinity;
131+
132+
var orderProperty = getOrderProperty(node, order);
133+
134+
// If the declaration's property is in order's list, save its
135+
// group and property indexes. Otherwise set them to 10000, so
136+
// declaration appears at the bottom of a sorted list:
137+
node.groupIndex = orderProperty && orderProperty.group > -1 ? orderProperty.group : lastGroupIndex;
138+
node.propertyIndex = orderProperty && orderProperty.prop > -1 ? orderProperty.prop : lastPropertyIndex;
139+
node.initialIndex = index;
140+
141+
return node;
142+
}
143+
127144
function fetchAllCommentsBeforeNode(comments, previousNode, node, currentInitialIndex) {
128145
if (!previousNode || previousNode.type !== 'comment') {
129146
return comments;
@@ -171,10 +188,6 @@ module.exports = postcss.plugin('postcss-sorting', function (opts) {
171188
var order = getSortOrderFromOptions(opts);
172189
var linesBetweenChildrenRules = getLinesBetweenChildrenFromOptions(opts);
173190

174-
// Index to place the nodes that shouldn't be sorted
175-
var lastGroupIndex = order['...'] ? order['...'].group : Infinity;
176-
var lastPropertyIndex = order['...'] ? order['...'].prop : Infinity;
177-
178191
css.walk(function (rule) {
179192
// Process only rules and atrules with nodes
180193
if ((rule.type === 'rule' || rule.type === 'atrule') && rule.nodes && rule.nodes.length) {
@@ -193,14 +206,7 @@ module.exports = postcss.plugin('postcss-sorting', function (opts) {
193206
return;
194207
}
195208

196-
var orderProperty = getOrderProperty(node, order);
197-
198-
// If the declaration's property is in order's list, save its
199-
// group and property indexes. Otherwise set them to 10000, so
200-
// declaration appears at the bottom of a sorted list:
201-
node.groupIndex = orderProperty && orderProperty.group > -1 ? orderProperty.group : lastGroupIndex;
202-
node.propertyIndex = orderProperty && orderProperty.prop > -1 ? orderProperty.prop : lastPropertyIndex;
203-
node.initialIndex = index;
209+
node = addIndexesToNode(node, index, order);
204210

205211
// If comment on separate line before node, use node's indexes for comment
206212
var commentsBefore = fetchAllCommentsBeforeNode([], node.prev(), node);

0 commit comments

Comments
 (0)