X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=node_modules%2Fvideo.js%2Fes5%2Futils%2Fmerge-options.js;fp=node_modules%2Fvideo.js%2Fes5%2Futils%2Fmerge-options.js;h=dd35ae05f2d6b1d91508864a0c4c589d43f4ca00;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/node_modules/video.js/es5/utils/merge-options.js b/node_modules/video.js/es5/utils/merge-options.js new file mode 100644 index 000000000..dd35ae05f --- /dev/null +++ b/node_modules/video.js/es5/utils/merge-options.js @@ -0,0 +1,48 @@ +'use strict'; + +exports.__esModule = true; +exports['default'] = mergeOptions; + +var _obj = require('./obj'); + +/** + * Deep-merge one or more options objects, recursively merging **only** plain + * object properties. + * + * @param {Object[]} sources + * One or more objects to merge into a new object. + * + * @returns {Object} + * A new object that is the merged result of all sources. + */ +function mergeOptions() { + var result = {}; + + for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) { + sources[_key] = arguments[_key]; + } + + sources.forEach(function (source) { + if (!source) { + return; + } + + (0, _obj.each)(source, function (value, key) { + if (!(0, _obj.isPlain)(value)) { + result[key] = value; + return; + } + + if (!(0, _obj.isPlain)(result[key])) { + result[key] = {}; + } + + result[key] = mergeOptions(result[key], value); + }); + }); + + return result; +} /** + * @file merge-options.js + * @module merge-options + */