Ajout de promotion et de commande

This commit is contained in:
Aubert Marvin
2026-04-25 15:28:39 +02:00
parent eddb103755
commit faa3d7718c
8428 changed files with 1126442 additions and 6 deletions
+52
View File
@@ -0,0 +1,52 @@
'use strict';
var isCategory = require('node-exports-info/isCategory');
var getCategoriesForRange = require('node-exports-info/getCategoriesForRange');
var $TypeError = require('es-errors/type');
var selectMostRestrictive = require('./select-most-restrictive');
// Determine the active exports category from resolve options
// Returns null if no exports resolution should be applied
// Returns 'engines' if engines: true (needs consumer package.json lookup)
// Throws TypeError if invalid options are provided
/** @type {(opts?: { exportsCategory?: import('node-exports-info/getCategory').Category, engines?: boolean | string }) => null | import('node-exports-info/getCategory').Category} */
module.exports = function getExportsCategory(opts) {
if (!opts) {
return null;
}
var hasCategory = typeof opts.exportsCategory !== 'undefined';
var engines = opts.engines;
var hasEngines = typeof engines !== 'undefined' && engines !== false;
if (hasCategory && hasEngines) {
throw new $TypeError('`exportsCategory` and `engines` are mutually exclusive.');
}
if (hasCategory) {
if (!isCategory(opts.exportsCategory)) {
var catError = new $TypeError('Invalid exports category: "' + opts.exportsCategory + '"');
catError.code = 'INVALID_EXPORTS_CATEGORY';
throw catError;
}
return opts.exportsCategory;
}
if (hasEngines) {
// engines: true means read from consumer's package.json
if (engines === true) {
return 'engines';
}
// engines must be a non-empty string (semver range)
if (typeof engines !== 'string' || engines === '') {
throw new $TypeError('`engines` must be `true`, `false`, or a non-empty string semver range.');
}
var categories = getCategoriesForRange(engines);
return selectMostRestrictive(categories);
}
return null;
};