source: imaps-frontend/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js@ d565449

main
Last change on this file since d565449 was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 1.5 KB
RevLine 
[d565449]1/**
2 * @filedescription Merge Strategy
3 */
4
5"use strict";
6
7//-----------------------------------------------------------------------------
8// Class
9//-----------------------------------------------------------------------------
10
11/**
12 * Container class for several different merge strategies.
13 */
14class MergeStrategy {
15
16 /**
17 * Merges two keys by overwriting the first with the second.
18 * @param {*} value1 The value from the first object key.
19 * @param {*} value2 The value from the second object key.
20 * @returns {*} The second value.
21 */
22 static overwrite(value1, value2) {
23 return value2;
24 }
25
26 /**
27 * Merges two keys by replacing the first with the second only if the
28 * second is defined.
29 * @param {*} value1 The value from the first object key.
30 * @param {*} value2 The value from the second object key.
31 * @returns {*} The second value if it is defined.
32 */
33 static replace(value1, value2) {
34 if (typeof value2 !== "undefined") {
35 return value2;
36 }
37
38 return value1;
39 }
40
41 /**
42 * Merges two properties by assigning properties from the second to the first.
43 * @param {*} value1 The value from the first object key.
44 * @param {*} value2 The value from the second object key.
45 * @returns {*} A new object containing properties from both value1 and
46 * value2.
47 */
48 static assign(value1, value2) {
49 return Object.assign({}, value1, value2);
50 }
51}
52
53exports.MergeStrategy = MergeStrategy;
Note: See TracBrowser for help on using the repository browser.