Ajout de promotion et de commande
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
// Category ranking from most restrictive (lowest rank) to least restrictive (highest rank)
|
||||
// Lower rank = more restrictive = fewer features supported
|
||||
var categoryRank = /** @type {const} */ {
|
||||
__proto__: null,
|
||||
'pre-exports': /** @type {const} */ (0),
|
||||
broken: /** @type {const} */ (1),
|
||||
experimental: /** @type {const} */ (2),
|
||||
conditions: /** @type {const} */ (3),
|
||||
'broken-dir-slash-conditions': /** @type {const} */ (4),
|
||||
patterns: /** @type {const} */ (5),
|
||||
'pattern-trailers': /** @type {const} */ (6),
|
||||
'pattern-trailers+json-imports': /** @type {const} */ (7),
|
||||
'pattern-trailers-no-dir-slash': /** @type {const} */ (8),
|
||||
'pattern-trailers-no-dir-slash+json-imports': /** @type {const} */ (9),
|
||||
'require-esm': /** @type {const} */ (10),
|
||||
'strips-types': /** @type {const} */ (11),
|
||||
'subpath-imports-slash': /** @type {const} */ (12)
|
||||
};
|
||||
|
||||
// Select the most restrictive category from an array of categories
|
||||
/** @type {(categories?: ReturnType<import('node-exports-info/getCategory')>[]) => import('node-exports-info/getCategory').Category | null} */
|
||||
module.exports = function selectMostRestrictive(categories) {
|
||||
if (!categories || categories.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var mostRestrictive = null;
|
||||
var lowestRank = Infinity;
|
||||
|
||||
for (var i = 0; i < categories.length; i++) {
|
||||
var cat = categories[i];
|
||||
var rank = categoryRank[cat];
|
||||
if (typeof rank === 'number' && rank < lowestRank) {
|
||||
lowestRank = rank;
|
||||
mostRestrictive = cat;
|
||||
}
|
||||
}
|
||||
|
||||
return mostRestrictive;
|
||||
};
|
||||
Reference in New Issue
Block a user