Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

URLProcessor.js 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /* global config, interfaceConfig, getConfigParamsFromUrl */
  2. var configUtils = require('./Util');
  3. var params = {};
  4. params = getConfigParamsFromUrl();
  5. var URLProcessor = {
  6. setConfigParametersFromUrl: function () {
  7. // Convert 'params' to JSON object
  8. // We have:
  9. // {
  10. // "config.disableAudioLevels": false,
  11. // "config.channelLastN": -1,
  12. // "interfaceConfig.APP_NAME": "Jitsi Meet"
  13. // }
  14. // We want to have:
  15. // {
  16. // "config": {
  17. // "disableAudioLevels": false,
  18. // "channelLastN": -1
  19. // },
  20. // interfaceConfig: {
  21. // APP_NAME: "Jitsi Meet"
  22. // }
  23. // }
  24. var configJSON = {
  25. config: {},
  26. interfaceConfig: {}
  27. };
  28. for (var key in params) {
  29. if (typeof key !== "string") {
  30. console.warn("Invalid config key: ", key);
  31. continue;
  32. }
  33. var confObj = null, confKey;
  34. if (key.indexOf("config.") === 0) {
  35. confObj = configJSON.config;
  36. confKey = key.substr("config.".length);
  37. // prevent passing some parameters which can inject scripts
  38. if (confKey === 'analyticsScriptUrls'
  39. || confKey === 'callStatsCustomScriptUrl')
  40. continue;
  41. } else if (key.indexOf("interfaceConfig.") === 0) {
  42. confObj = configJSON.interfaceConfig;
  43. confKey = key.substr("interfaceConfig.".length);
  44. }
  45. if (!confObj)
  46. continue;
  47. confObj[confKey] = params[key];
  48. }
  49. configUtils.overrideConfigJSON(config, interfaceConfig, configJSON);
  50. }
  51. };
  52. module.exports = URLProcessor;