"use strict";

/**
 * Handle arguments for backwards compatibility
 * @param {Object} args
 * @returns {{config: {}, cb: *}}
 */
module.exports = function (args) {

    var config = {};
    var cb;

    switch (args.length) {

        case 1 :

            if (isFilesArg(args[0])) {

                config.files = args[0];

            } else if (typeof args[0] === "function") {

                cb = args[0];

            } else {

                config = args[0];

            }

            break;

        case 2 :

            // if second is a function, first MUST be config
            if (typeof args[1] === "function") {

                config = args[0] || {};
                cb = args[1];

            } else {

                config = args[1] || {};

                if (!config.files) {
                    config.files = args[0];
                }
            }

            break;

        case 3 :

            config = args[1] || {};

            if (!config.files) {
                config.files = args[0];
            }

            cb = args[2];
    }

    function isFilesArg (arg) {
        return Array.isArray(arg) || typeof arg === "string";
    }

    return {
        config: config,
        cb: cb
    };
};

@@ -8,16 +8,105 @@
 rict%22;%0A%0A
+function isFilesArg (arg) %7B%0A    return Array.isArray(arg) %7C%7C typeof arg === %22string%22;%0A%7D%0A%0A
 /**%0A * H
@@ -1165,109 +1165,8 @@
  %7D%0A%0A
-    function isFilesArg (arg) %7B%0A        return Array.isArray(arg) %7C%7C typeof arg === %22string%22;%0A    %7D%0A%0A
     

Move function out of the scope