MCPcopy Create free account
hub / github.com/ember-cli/ember-cli / mergeDuplicateOption

Function mergeDuplicateOption

lib/models/command.js:349–375  ·  view source on GitHub ↗

Merges any options with duplicate keys in the availableOptions array. Used primarily by registerOptions. @method mergeDuplicateOption @param {String} key @return {Object}

(key)

Source from the content-addressed store, hash-verified

347 @return {Object}
348 */
349 mergeDuplicateOption(key) {
350 let duplicateOptions, mergedOption, mergedAliases;
351 // get duplicates to merge
352 duplicateOptions = this.availableOptions.filter((option) => option.name === key);
353
354 if (duplicateOptions.length > 1) {
355 // TODO: warn on duplicates and overwriting
356 mergedAliases = duplicateOptions.flatMap((option) => option.aliases);
357
358 // merge duplicate options
359 mergedOption = Object.assign.apply(null, duplicateOptions);
360
361 // replace aliases with unique aliases
362 mergedOption.aliases = uniqBy(mergedAliases, (alias) => {
363 if (typeof alias === 'object') {
364 return alias[Object.keys(alias)[0]];
365 }
366 return alias;
367 });
368
369 // remove duplicates from options
370 this.availableOptions = reject(this.availableOptions, { name: key });
371 this.availableOptions.push(mergedOption);
372 }
373
374 return this.availableOptions;
375 },
376
377 /**
378 Normalizes option, filling in implicit values

Callers

nothing calls this directly

Calls 1

filterMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…