append-queries-to-url.js

  1. import { default as stringify } from './stringify';
  2. /**
  3. * 向URL中追加query
  4. *
  5. * @private
  6. * @param url
  7. * @param query query字符串,如"a=12"
  8. */
  9. function appendQueryToUrl(url, query) {
  10. if (!url || !query) {
  11. return url;
  12. }
  13. var symbol = url && url.indexOf('?') > -1 ? '&' : '?';
  14. var len = url.length;
  15. if (url[len - 1] === '?' || url[len - 1] === '&') {
  16. symbol = '';
  17. }
  18. var result = "".concat(url).concat(symbol).concat(query);
  19. return result;
  20. }
  21. /**
  22. * 向url中添加query
  23. * 备注: key/value均会进行一次encodeURIComponent
  24. * @param {string} url
  25. * @param {object} params kv键值对,如: {chInf: 'abc'};
  26. *
  27. * @example
  28. *
  29. * import { appendQueriesToUrl } from '@jairwinl/utils/esm/appendQueriesToUrl';
  30. *
  31. * appendQueriesToUrl('https://example.com', { a: 'b', c: 'd' })
  32. *
  33. * // => 'https://example.com?a=b&c=d'
  34. */
  35. function appendQueriesToUrl(url, params) {
  36. if (params === void 0) { params = {}; }
  37. if (!url || !params) {
  38. return url;
  39. }
  40. return appendQueryToUrl(url, stringify(params));
  41. }
  42. export default appendQueriesToUrl;
  43. //# sourceMappingURL=append-queries-to-url.js.map