"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var immutable_1 = require("immutable"); var addToFilesOption_1 = require("./transforms/addToFilesOption"); var addDefaultIgnorePatterns_1 = require("./transforms/addDefaultIgnorePatterns"); var copyCLIIgnoreToWatchOptions_1 = require("./transforms/copyCLIIgnoreToWatchOptions"); var handleExtensionsOption_1 = require("./transforms/handleExtensionsOption"); var handleFilesOption_1 = require("./transforms/handleFilesOption"); var handleGhostModeOption_1 = require("./transforms/handleGhostModeOption"); var handlePortsOption_1 = require("./transforms/handlePortsOption"); var handleProxyOption_1 = require("./transforms/handleProxyOption"); var handleServerOption_1 = require("./transforms/handleServerOption"); var appendServerIndexOption_1 = require("./transforms/appendServerIndexOption"); var appendServerDirectoryOption_1 = require("./transforms/appendServerDirectoryOption"); var addCwdToWatchOptions_1 = require("./transforms/addCwdToWatchOptions"); var options_1 = require("../options"); var handleHostOption_1 = require("./transforms/handleHostOption"); var _ = require("../lodash.custom"); var defaultConfig = require("../default-config"); var immDefs = immutable_1.fromJS(defaultConfig); function merge(input) { var merged = immDefs.mergeDeep(input); var transforms = [ addToFilesOption_1.addToFilesOption, addCwdToWatchOptions_1.addCwdToWatchOptions, addDefaultIgnorePatterns_1.addDefaultIgnorePatterns, copyCLIIgnoreToWatchOptions_1.copyCLIIgnoreToWatchOptions, handleServerOption_1.handleServerOption, appendServerIndexOption_1.appendServerIndexOption, appendServerDirectoryOption_1.appendServerDirectoryOption, handleProxyOption_1.handleProxyOption, handlePortsOption_1.handlePortsOption, handleHostOption_1.handleHostOption, handleGhostModeOption_1.handleGhostModeOption, handleFilesOption_1.handleFilesOption, handleExtensionsOption_1.handleExtensionsOption, options_1.setMode, options_1.setScheme, options_1.setStartPath, options_1.setProxyWs, options_1.setServerOpts, options_1.liftExtensionsOptionFromCli, options_1.setNamespace, options_1.fixSnippetIgnorePaths, options_1.fixSnippetIncludePaths, options_1.fixRewriteRules, options_1.setMiddleware, options_1.setOpen, options_1.setUiPort ]; var output = transforms.reduce(function (acc, item) { var current = acc[0], currentErrors = acc[1]; var _a = item.call(null, current), result = _a[0], errors = _a[1]; return [result, currentErrors.concat(errors)]; }, [merged, []]); return output; } exports.merge = merge; /** * @param string */ function explodeFilesArg(string) { return string.split(",").map(function (item) { return item.trim(); }); } exports.explodeFilesArg = explodeFilesArg; /** * @param value * @returns {{globs: Array, objs: Array}} */ function makeFilesArg(value) { var globs = []; var objs = []; if (_.isString(value)) { globs = globs.concat(explodeFilesArg(value)); } if (immutable_1.List.isList(value) && value.size) { value.forEach(function (value) { if (_.isString(value)) { globs.push(value); } else { if (immutable_1.Map.isMap(value)) { objs.push(value); } } }); } return { globs: globs, objs: objs }; } exports.makeFilesArg = makeFilesArg; function printErrors(errors) { return errors .map(function (error) { return [ "Error Type: " + error.type, "Error Level: " + error.level, error.errors.map(function (item) { return [ "Error Message: " + item.error.message, item.meta ? item.meta().join("\n") : "" ] .filter(Boolean) .join("\n"); }) ].join("\n"); }) .join("\n\n"); } exports.printErrors = printErrors; //# sourceMappingURL=cli-options.js.map