UNPKG

eslint-plugin-perfectionist

Version:

ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.

39 lines (38 loc) 981 B
'use strict' Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }) const compare = require('./compare.js') let sortNodes = ({ fallbackSortNodeValueGetter, ignoreEslintDisabledNodes, nodeValueGetter, isNodeIgnored, options, nodes, }) => { let nonIgnoredNodes = [] let ignoredNodeIndices = [] for (let [index, sortingNode] of nodes.entries()) { if ( (sortingNode.isEslintDisabled && ignoreEslintDisabledNodes) || (isNodeIgnored == null ? void 0 : isNodeIgnored(sortingNode)) ) { ignoredNodeIndices.push(index) } else { nonIgnoredNodes.push(sortingNode) } } let sortedNodes = [...nonIgnoredNodes].sort((a, b) => compare.compare({ fallbackSortNodeValueGetter, nodeValueGetter, options, a, b, }), ) for (let ignoredIndex of ignoredNodeIndices) { sortedNodes.splice(ignoredIndex, 0, nodes[ignoredIndex]) } return sortedNodes } exports.sortNodes = sortNodes