Sha256: 593455b549bc5b274db26e1825dbaaa78d4b15e56be634a7a0496b1d404757dc

Contents?: true

Size: 1.5 KB

Versions: 50

Compression:

Stored size: 1.5 KB

Contents

/**
 * @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;

Version data entries

50 entries across 41 versions & 2 rubygems

Version Path
immosquare-cleaner-0.1.51 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.50 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.49 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.48 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.47 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.46 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.45 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.44 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.43 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.42 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.41 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.40 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.39 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.38 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.32 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.32 node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.31 node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.31 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.30 node_modules/@humanwhocodes/object-schema/src/merge-strategy.js
immosquare-cleaner-0.1.30 node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js