| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.setUiPort = exports.setMiddleware = exports.fixSnippetIncludePaths = exports.fixSnippetIgnorePaths = exports.fixRewriteRules = exports.liftExtensionsOptionFromCli = exports.setServerOpts = exports.setNamespace = exports.setStartPath = exports.setScheme = exports.setMode = exports.setOpen = exports.setProxyWs = void 0;const _ = require("./lodash.custom");const Immutable = require("immutable");const defaultConfig = require("./default-config");/** * Move top-level ws options to proxy.ws * This is to allow it to be set from the CLI * @param incoming */function setProxyWs(incoming) {    if (incoming.get("ws") && incoming.get("mode") === "proxy") {        return [incoming.setIn(["proxy", "ws"], true), []];    }    return [incoming, []];}exports.setProxyWs = setProxyWs;/** * @param incoming */function setOpen(incoming) {    return [        incoming.update("open", function (open) {            if (incoming.get("mode") === "snippet") {                if (open !== "ui" && open !== "ui-external") {                    return false;                }            }            return open;        }),        []    ];}exports.setOpen = setOpen;/** * Set the running mode * @param incoming */function setMode(incoming) {    const output = incoming.set("mode", (function () {        if (incoming.get("server")) {            return "server";        }        if (incoming.get("proxy")) {            return "proxy";        }        return "snippet";    })());    return [output, []];}exports.setMode = setMode;/** * @param incoming */function setScheme(incoming) {    var scheme = "http";    if (incoming.getIn(["server", "https"])) {        scheme = "https";    }    if (incoming.get("https")) {        scheme = "https";    }    if (incoming.getIn(["proxy", "url", "protocol"])) {        if (incoming.getIn(["proxy", "url", "protocol"]) === "https:") {            scheme = "https";        }    }    return [incoming.set("scheme", scheme), []];}exports.setScheme = setScheme;/** * @param incoming */function setStartPath(incoming) {    if (incoming.get("proxy")) {        var path = incoming.getIn(["proxy", "url", "path"]);        if (path !== "/") {            return [incoming.set("startPath", path), []];        }    }    return [incoming, []];}exports.setStartPath = setStartPath;/** * @param incoming */function setNamespace(incoming) {    var namespace = incoming.getIn(["socket", "namespace"]);    if (_.isFunction(namespace)) {        return [            incoming.setIn(["socket", "namespace"], namespace(defaultConfig.socket.namespace)),            []        ];    }    return [incoming, []];}exports.setNamespace = setNamespace;/** * @param incoming */function setServerOpts(incoming) {    if (!incoming.get("server")) {        return [incoming, []];    }    var indexarg = incoming.getIn(["server", "index"]) || "index.html";    var optPath = ["server", "serveStaticOptions"];    if (!incoming.getIn(optPath)) {        return [            incoming.setIn(optPath, Immutable.Map({                index: indexarg            })),            []        ];    }    if (!incoming.hasIn(optPath.concat(["index"]))) {        return [incoming.setIn(optPath.concat(["index"]), indexarg), []];    }    return [incoming, []];}exports.setServerOpts = setServerOpts;function liftExtensionsOptionFromCli(incoming) {    // cli extensions    var optPath = ["server", "serveStaticOptions"];    if (incoming.get("extensions")) {        return [            incoming.setIn(optPath.concat(["extensions"]), incoming.get("extensions")),            []        ];    }    return [incoming, []];}exports.liftExtensionsOptionFromCli = liftExtensionsOptionFromCli;/** * Back-compat fixes for rewriteRules being set to a boolean */function fixRewriteRules(incoming) {    return [        incoming.update("rewriteRules", function (rr) {            return Immutable.List([])                .concat(rr)                .filter(Boolean);        }),        []    ];}exports.fixRewriteRules = fixRewriteRules;function fixSnippetIgnorePaths(incoming) {    var ignorePaths = incoming.getIn(["snippetOptions", "ignorePaths"]);    if (ignorePaths) {        if (_.isString(ignorePaths)) {            ignorePaths = [ignorePaths];        }        ignorePaths = ignorePaths.map(ensureSlash);        return [            incoming.setIn(["snippetOptions", "blacklist"], Immutable.List(ignorePaths)),            []        ];    }    return [incoming, []];}exports.fixSnippetIgnorePaths = fixSnippetIgnorePaths;function fixSnippetIncludePaths(incoming) {    var includePaths = incoming.getIn(["snippetOptions", "whitelist"]);    if (includePaths) {        includePaths = includePaths.map(ensureSlash);        return [            incoming.setIn(["snippetOptions", "whitelist"], Immutable.List(includePaths)),            []        ];    }    return [incoming, []];}exports.fixSnippetIncludePaths = fixSnippetIncludePaths;/** * Enforce paths to begin with a forward slash */function ensureSlash(item) {    if (item[0] !== "/") {        return "/" + item;    }    return item;}/** * */function setMiddleware(incoming) {    var mw = getMiddlwares(incoming);    return [incoming.set("middleware", mw), []];}exports.setMiddleware = setMiddleware;/** * top-level option, or given as part of the proxy/server option * @param item * @returns {*} */function getMiddlwares(item) {    var mw = item.get("middleware");    var serverMw = item.getIn(["server", "middleware"]);    var proxyMw = item.getIn(["proxy", "middleware"]);    var list = Immutable.List([]);    if (mw) {        return listMerge(list, mw);    }    if (serverMw) {        return listMerge(list, serverMw);    }    if (proxyMw) {        return listMerge(list, proxyMw);    }    return list;}/** * @param item * @returns {*} */function isList(item) {    return Immutable.List.isList(item);}/** * @param list * @param item * @returns {*} */function listMerge(list, item) {    if (_.isFunction(item)) {        list = list.push(item);    }    if (isList(item) && item.size) {        list = list.merge(item);    }    return list;}/** * @param incoming * @returns {*} */function setUiPort(incoming) {    if (incoming.get("uiPort")) {        return [incoming.setIn(["ui", "port"], incoming.get("uiPort")), []];    }    return [incoming, []];}exports.setUiPort = setUiPort;//# sourceMappingURL=options.js.map
 |