You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					59 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					59 lines
				
				1.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import toFormData from './toFormData.js';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * It encodes a string by replacing all characters that are not in the unreserved set with
							 | 
						||
| 
								 | 
							
								 * their percent-encoded equivalents
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @param {string} str - The string to encode.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @returns {string} The encoded string.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function encode(str) {
							 | 
						||
| 
								 | 
							
								  const charMap = {
							 | 
						||
| 
								 | 
							
								    '!': '%21',
							 | 
						||
| 
								 | 
							
								    "'": '%27',
							 | 
						||
| 
								 | 
							
								    '(': '%28',
							 | 
						||
| 
								 | 
							
								    ')': '%29',
							 | 
						||
| 
								 | 
							
								    '~': '%7E',
							 | 
						||
| 
								 | 
							
								    '%20': '+',
							 | 
						||
| 
								 | 
							
								    '%00': '\x00'
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
							 | 
						||
| 
								 | 
							
								    return charMap[match];
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * It takes a params object and converts it to a FormData object
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
							 | 
						||
| 
								 | 
							
								 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @returns {void}
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function AxiosURLSearchParams(params, options) {
							 | 
						||
| 
								 | 
							
								  this._pairs = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  params && toFormData(params, this, options);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const prototype = AxiosURLSearchParams.prototype;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								prototype.append = function append(name, value) {
							 | 
						||
| 
								 | 
							
								  this._pairs.push([name, value]);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								prototype.toString = function toString(encoder) {
							 | 
						||
| 
								 | 
							
								  const _encode = encoder ? function(value) {
							 | 
						||
| 
								 | 
							
								    return encoder.call(this, value, encode);
							 | 
						||
| 
								 | 
							
								  } : encode;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return this._pairs.map(function each(pair) {
							 | 
						||
| 
								 | 
							
								    return _encode(pair[0]) + '=' + _encode(pair[1]);
							 | 
						||
| 
								 | 
							
								  }, '').join('&');
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default AxiosURLSearchParams;
							 |