mirror of
https://github.com/videojs/video.js.git
synced 2024-11-28 08:58:46 +02:00
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
import _ from 'lodash';
|
|
/**
|
|
* Customizes _.merge behavior in `gruntOptions` to concatenate
|
|
* arrays. This can be overridden on a per-call basis to
|
|
*
|
|
* @see https://lodash.com/docs#merge
|
|
* @function GruntCustomizer
|
|
* @private
|
|
* @param {Mixed} objectValue
|
|
* @param {Mixed} sourceValue
|
|
* @return {Object}
|
|
*/
|
|
function gruntCustomizer(objectValue, sourceValue) {
|
|
if (Array.isArray(objectValue)) {
|
|
return objectValue.concat(sourceValue);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Creates a gruntOptions instance for the specific defaultOptions and gruntCustomizer
|
|
*
|
|
* @function browserifyGruntOptions
|
|
* @private
|
|
* @param {Object} [options]
|
|
* @param {Function} [customizer=gruntCustomizer]
|
|
* If the default array-concatenation behavior is not desireable,
|
|
* pass _.noop or a unique customizer (https://lodash.com/docs#merge).
|
|
*
|
|
* @return {Function}
|
|
*/
|
|
function gruntOptionsMaker(defaultOptions, gruntCustomizer) {
|
|
/**
|
|
* Creates a unique object of Browserify Grunt task options.
|
|
*
|
|
* @function gruntOptions
|
|
* @private
|
|
* @param {Object} [options]
|
|
* @param {Function} [customizer=browserifyGruntCustomizer]
|
|
* If the default array-concatenation behavior is not desireable,
|
|
* pass _.noop or a unique customizer (https://lodash.com/docs#merge).
|
|
*
|
|
* @return {Object}
|
|
*/
|
|
return function gruntOptions(options = null, customizer = gruntCustomizer) {
|
|
return _.merge({}, defaultOptions, options, customizer);
|
|
}
|
|
};
|
|
|
|
export { gruntCustomizer, gruntOptionsMaker };
|