{"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createConfig = void 0;\nvar isPlainObj = require(\"is-plain-obj\");\nvar url = require(\"url\");\nvar errors_1 = require(\"./errors\");\nvar logger_1 = require(\"./logger\");\nvar logger = (0, logger_1.getInstance)();\nfunction createConfig(context, opts) {\n  // structure of config object to be returned\n  var config = {\n    context: undefined,\n    options: {}\n  };\n  // app.use('/api', proxy({target:'http://localhost:9000'}));\n  if (isContextless(context, opts)) {\n    config.context = '/';\n    config.options = Object.assign(config.options, context);\n    // app.use('/api', proxy('http://localhost:9000'));\n    // app.use(proxy('http://localhost:9000/api'));\n  } else if (isStringShortHand(context)) {\n    var oUrl = url.parse(context);\n    var target = [oUrl.protocol, '//', oUrl.host].join('');\n    config.context = oUrl.pathname || '/';\n    config.options = Object.assign(config.options, {\n      target: target\n    }, opts);\n    if (oUrl.protocol === 'ws:' || oUrl.protocol === 'wss:') {\n      config.options.ws = true;\n    }\n    // app.use('/api', proxy({target:'http://localhost:9000'}));\n  } else {\n    config.context = context;\n    config.options = Object.assign(config.options, opts);\n  }\n  configureLogger(config.options);\n  if (!config.options.target && !config.options.router) {\n    throw new Error(errors_1.ERRORS.ERR_CONFIG_FACTORY_TARGET_MISSING);\n  }\n  return config;\n}\nexports.createConfig = createConfig;\n/**\n * Checks if a String only target/config is provided.\n * This can be just the host or with the optional path.\n *\n * @example\n *      app.use('/api', proxy('http://localhost:9000'));\n *      app.use(proxy('http://localhost:9000/api'));\n *\n * @param  {String}  context [description]\n * @return {Boolean}         [description]\n */\nfunction isStringShortHand(context) {\n  if (typeof context === 'string') {\n    return !!url.parse(context).host;\n  }\n}\n/**\n * Checks if a Object only config is provided, without a context.\n * In this case the all paths will be proxied.\n *\n * @example\n *     app.use('/api', proxy({target:'http://localhost:9000'}));\n *\n * @param  {Object}  context [description]\n * @param  {*}       opts    [description]\n * @return {Boolean}         [description]\n */\nfunction isContextless(context, opts) {\n  return isPlainObj(context) && (opts == null || Object.keys(opts).length === 0);\n}\nfunction configureLogger(options) {\n  if (options.logLevel) {\n    logger.setLevel(options.logLevel);\n  }\n  if (options.logProvider) {\n    logger.setProvider(options.logProvider);\n  }\n}","map":{"version":3,"names":["Object","defineProperty","exports","value","createConfig","isPlainObj","require","url","errors_1","logger_1","logger","getInstance","context","opts","config","undefined","options","isContextless","assign","isStringShortHand","oUrl","parse","target","protocol","host","join","pathname","ws","configureLogger","router","Error","ERRORS","ERR_CONFIG_FACTORY_TARGET_MISSING","keys","length","logLevel","setLevel","logProvider","setProvider"],"sources":["D:/DSP_Management/node_modules/http-proxy-middleware/dist/config-factory.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createConfig = void 0;\nconst isPlainObj = require(\"is-plain-obj\");\nconst url = require(\"url\");\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\nconst logger = (0, logger_1.getInstance)();\nfunction createConfig(context, opts) {\n    // structure of config object to be returned\n    const config = {\n        context: undefined,\n        options: {},\n    };\n    // app.use('/api', proxy({target:'http://localhost:9000'}));\n    if (isContextless(context, opts)) {\n        config.context = '/';\n        config.options = Object.assign(config.options, context);\n        // app.use('/api', proxy('http://localhost:9000'));\n        // app.use(proxy('http://localhost:9000/api'));\n    }\n    else if (isStringShortHand(context)) {\n        const oUrl = url.parse(context);\n        const target = [oUrl.protocol, '//', oUrl.host].join('');\n        config.context = oUrl.pathname || '/';\n        config.options = Object.assign(config.options, { target }, opts);\n        if (oUrl.protocol === 'ws:' || oUrl.protocol === 'wss:') {\n            config.options.ws = true;\n        }\n        // app.use('/api', proxy({target:'http://localhost:9000'}));\n    }\n    else {\n        config.context = context;\n        config.options = Object.assign(config.options, opts);\n    }\n    configureLogger(config.options);\n    if (!config.options.target && !config.options.router) {\n        throw new Error(errors_1.ERRORS.ERR_CONFIG_FACTORY_TARGET_MISSING);\n    }\n    return config;\n}\nexports.createConfig = createConfig;\n/**\n * Checks if a String only target/config is provided.\n * This can be just the host or with the optional path.\n *\n * @example\n *      app.use('/api', proxy('http://localhost:9000'));\n *      app.use(proxy('http://localhost:9000/api'));\n *\n * @param  {String}  context [description]\n * @return {Boolean}         [description]\n */\nfunction isStringShortHand(context) {\n    if (typeof context === 'string') {\n        return !!url.parse(context).host;\n    }\n}\n/**\n * Checks if a Object only config is provided, without a context.\n * In this case the all paths will be proxied.\n *\n * @example\n *     app.use('/api', proxy({target:'http://localhost:9000'}));\n *\n * @param  {Object}  context [description]\n * @param  {*}       opts    [description]\n * @return {Boolean}         [description]\n */\nfunction isContextless(context, opts) {\n    return isPlainObj(context) && (opts == null || Object.keys(opts).length === 0);\n}\nfunction configureLogger(options) {\n    if (options.logLevel) {\n        logger.setLevel(options.logLevel);\n    }\n    if (options.logProvider) {\n        logger.setProvider(options.logProvider);\n    }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}