hatch-surf/node_modules/resolve/lib/get-exports-category.js
Riley Zhang df378d33ef
Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Merge GitHub main into Gitea repo (allow unrelated histories)
Resolved conflicts by taking GitHub versions for:
- .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml

Kept deploy.sh updated to:
- Pull from GitHub (primary source)
- Push to Gitea (push-mirror)
- Build from site/ directory (GitHub structure)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-25 05:20:46 +02:00

53 lines
1.9 KiB
JavaScript

'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;
};