Framework updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2026-03-04 23:20:19 +00:00
parent a89daf3d43
commit 3ed8517b2a
891 changed files with 11126 additions and 9600 deletions

View File

@@ -53,9 +53,38 @@ const ExportPresenceModes = {
default:
throw new Error(`Invalid export presence value ${str}`);
}
},
/**
* Resolve export presence mode from parser options with a specific key and shared fallbacks.
* @param {string | false | undefined} specificValue the type-specific option value (e.g. importExportsPresence or reexportExportsPresence)
* @param {import("../../declarations/WebpackOptions").JavascriptParserOptions} options parser options
* @returns {ExportPresenceMode} resolved mode
*/
resolveFromOptions(specificValue, options) {
if (specificValue !== undefined) {
return ExportPresenceModes.fromUserOption(specificValue);
}
if (options.exportsPresence !== undefined) {
return ExportPresenceModes.fromUserOption(options.exportsPresence);
}
return options.strictExportPresence
? ExportPresenceModes.ERROR
: ExportPresenceModes.AUTO;
}
};
/**
* Get the non-optional leading part of a member chain.
* @param {string[]} members members
* @param {boolean[]} membersOptionals optionality for each member
* @returns {string[]} the non-optional prefix
*/
const getNonOptionalPart = (members, membersOptionals) => {
let i = 0;
while (i < members.length && membersOptionals[i] === false) i++;
return i !== members.length ? members.slice(0, i) : members;
};
/** @typedef {string[]} Ids */
class HarmonyImportDependency extends ModuleDependency {
@@ -427,3 +456,4 @@ HarmonyImportDependency.Template = class HarmonyImportDependencyTemplate extends
};
module.exports.ExportPresenceModes = ExportPresenceModes;
module.exports.getNonOptionalPart = getNonOptionalPart;