src/helpers/svgoBrowser.js
function extendConfig(defaults, config) {

        var key;

        // plugins
        if (config.plugins) {

            config.plugins.forEach(function(item) {

                // {}
                if (typeof item === 'object') {

                    key = Object.keys(item)[0];

                    // custom
                    if (typeof item[key] === 'object' && item[key].fn && typeof item[key].fn === 'function') {
                        defaults.plugins.push(setupCustomPlugin(key, item[key]));

                    } else {
                        defaults.plugins.forEach(function(plugin) {

                            if (plugin.name === key) {
                                // name: {}
                                if (typeof item[key] === 'object') {
                                    plugin.params = EXTEND({}, plugin.params || {}, item[key]);
                                    plugin.active = true;

                                // name: false
                                } else if (item[key] === false) {
                                   plugin.active = false;

                                // name: true
                                } else if (item[key] === true) {
                                   plugin.active = true;
                                }
                            }
                        });
                    }

                }

            });

        }

        defaults.multipass = config.multipass;

        // svg2js
        if (config.svg2js) {
            defaults.svg2js = config.svg2js;
        }

        // js2svg
        if (config.js2svg) {
            defaults.js2svg = config.js2svg;
        }

        return defaults;

    }
function extendConfig(defaults, config) {

        var key;

        // plugins
        if (config.plugins) {

            config.plugins.forEach(function(item) {

                // {}
                if (typeof item === 'object') {

                    key = Object.keys(item)[0];

                    // custom
                    if (typeof item[key] === 'object' && item[key].fn && typeof item[key].fn === 'function') {
                        defaults.plugins.push(setupCustomPlugin(key, item[key]));

                    } else {
                        defaults.plugins.forEach(function(plugin) {

                            if (plugin.name === key) {
                                // name: {}
                                if (typeof item[key] === 'object') {
                                    plugin.params = EXTEND({}, plugin.params || {}, item[key]);
                                    plugin.active = true;

                                // name: false
                                } else if (item[key] === false) {
                                   plugin.active = false;

                                // name: true
                                } else if (item[key] === true) {
                                   plugin.active = true;
                                }
                            }
                        });
                    }

                }

            });

        }

        defaults.multipass = config.multipass;

        // svg2js
        if (config.svg2js) {
            defaults.svg2js = config.svg2js;
        }

        // js2svg
        if (config.js2svg) {
            defaults.js2svg = config.js2svg;
        }

        return defaults;

    }
function extendConfig ( defaults , config ) { var key ; // plugins if ( config . plugins ) { config . plugins . forEach ( function ( item ) { // {} if ( typeof item === 'object' ) { key = Object . keys ( item ) [ 0 ] ; // custom if ( typeof item [ key ] === 'object' && item [ key ] . fn && typeof item [ key ] . fn === 'function' ) { defaults . plugins . push ( setupCustomPlugin ( key , item [ key ] ) ) ; } else { defaults . plugins . forEach ( function ( plugin ) { if ( plugin . name === key ) { // name: {} if ( typeof item [ key ] === 'object' ) { plugin . params = EXTEND ( { } , plugin . params || { } , item [ key ] ) ; plugin . active = true ; // name: false } else if ( item [ key ] === false ) { plugin . active = false ; // name: true } else if ( item [ key ] === true ) { plugin . active = true ; } } } ) ; } } } ) ; } defaults . multipass = config . multipass ; // svg2js if ( config . svg2js ) { defaults . svg2js = config . svg2js ; } // js2svg if ( config . js2svg ) { defaults . js2svg = config . js2svg ; } return defaults ; }
Extend plugins with the custom config object.

@param {Array} plugins input plugins
@param {Object} config config
@return {Array} output plugins
Extend plugins with the custom config object .