Spaces:
Sleeping
Sleeping
| ; | |
| 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; | |