MCPcopy
hub / github.com/webpack/webpack / mergeTargetProperties

Function mergeTargetProperties

lib/config/target.js:536–566  ·  view source on GitHub ↗
(targetProperties)

Source from the content-addressed store, hash-verified

534 * @returns {TargetProperties} merged target properties
535 */
536const mergeTargetProperties = (targetProperties) => {
537 /** @type {Set<keyof TargetProperties>} */
538 const keys = new Set();
539 for (const tp of targetProperties) {
540 for (const key of Object.keys(tp)) {
541 keys.add(/** @type {keyof TargetProperties} */ (key));
542 }
543 }
544 /** @type {TargetProperties} */
545 const result = {};
546 for (const key of keys) {
547 let hasTrue = false;
548 let hasFalse = false;
549 for (const tp of targetProperties) {
550 const value = tp[key];
551 switch (value) {
552 case true:
553 hasTrue = true;
554 break;
555 case false:
556 hasFalse = true;
557 break;
558 }
559 }
560 if (hasTrue || hasFalse) {
561 /** @type {TargetProperties} */
562 (result)[key] = hasFalse && hasTrue ? null : Boolean(hasTrue);
563 }
564 }
565 return result;
566};
567
568/**
569 * Gets targets properties.

Callers 1

getTargetsPropertiesFunction · 0.85

Calls 2

keysMethod · 0.65
addMethod · 0.45

Tested by

no test coverage detected