PatchitPy
/
extension_PatchitPy
/node_modules
/@humanwhocodes
/object-schema
/src
/merge-strategy.js
| /** | |
| * @filedescription Merge Strategy | |
| */ | |
| ; | |
| //----------------------------------------------------------------------------- | |
| // 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; | |