Permalink
Cannot retrieve contributors at this time
53 lines (45 sloc)
1.5 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* @filedescription Merge Strategy | |
*/ | |
"use strict"; | |
//----------------------------------------------------------------------------- | |
// Class | |
//----------------------------------------------------------------------------- | |
/** | |
* Container class for several different merge strategies. | |
*/ | |
class MergeStrategy { | |
/** | |
* Merges two keys by overwriting the first with the second. | |
* @param {*} value1 The value from the first object key. | |
* @param {*} value2 The value from the second object key. | |
* @returns {*} The second value. | |
*/ | |
static overwrite(value1, value2) { | |
return value2; | |
} | |
/** | |
* Merges two keys by replacing the first with the second only if the | |
* second is defined. | |
* @param {*} value1 The value from the first object key. | |
* @param {*} value2 The value from the second object key. | |
* @returns {*} The second value if it is defined. | |
*/ | |
static replace(value1, value2) { | |
if (typeof value2 !== "undefined") { | |
return value2; | |
} | |
return value1; | |
} | |
/** | |
* Merges two properties by assigning properties from the second to the first. | |
* @param {*} value1 The value from the first object key. | |
* @param {*} value2 The value from the second object key. | |
* @returns {*} A new object containing properties from both value1 and | |
* value2. | |
*/ | |
static assign(value1, value2) { | |
return Object.assign({}, value1, value2); | |
} | |
} | |
exports.MergeStrategy = MergeStrategy; |