UNPKG

axios-case-converter

Version:

Axios transformer/interceptor that converts snake_case/camelCase

17 lines (14 loc) 8.7 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).AxiosCaseConverter={})}(this,(function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?n(Object(o),!0).forEach((function(t){r(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):n(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==u.return||u.return()}finally{if(o)throw i}}return r}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n} /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ var f=function(){return(f=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function s(e){return e.toLowerCase()}var l=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],d=/[^A-Z0-9]+/gi;function p(e,t){void 0===t&&(t={});for(var r=t.splitRegexp,n=void 0===r?l:r,o=t.stripRegexp,i=void 0===o?d:o,a=t.transform,u=void 0===a?s:a,c=t.delimiter,f=void 0===c?" ":c,p=y(y(e,n,"$1\0$2"),i,"\0"),v=0,m=p.length;"\0"===p.charAt(v);)v++;for(;"\0"===p.charAt(m-1);)m--;return p.slice(v,m).split("\0").map(u).join(f)}function y(e,t,r){return t instanceof RegExp?e.replace(t,r):t.reduce((function(e,t){return e.replace(t,r)}),e)}function v(e,t){var r=e.charAt(0),n=e.substr(1).toLowerCase();return t>0&&r>="0"&&r<="9"?"_"+r+n:""+r.toUpperCase()+n}function m(e,t){return 0===t?e.toLowerCase():v(e,t)}function b(e){return function(e){return e.charAt(0).toUpperCase()+e.substr(1)}(e.toLowerCase())}var h=function(e){return"undefined"!=typeof FormData&&e instanceof FormData},g=function(e){return"object"===t(e)&&null!==e&&"[object Object]"===Object.prototype.toString.call(e)},j=function(e){return Array.isArray(e)||g(e)||h(e)||function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}(e)},O=function e(t,r,n){var o;if(!j(t))return t;if(h(t)&&!t.entries)return"ReactNative"===navigator.product?console.warn("Be careful that FormData cannot be transformed on React Native. If you intentionally implemented, ignore this kind of warning: https://facebook.github.io/react-native/docs/debugging.html"):console.warn("You must use polyfill of FormData.prototype.entries() on Internet Explorer or Safari: https://github.com/jimmywarting/FormData"),t;var a,c=Object.getPrototypeOf(t),f=n?t:c?new c.constructor:Object.create(null),s=function(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=u(e))){var t=0,r=function(){};return{s:r,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,o,i=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(a)throw o}}}}((null==c||null===(o=c.entries)||void 0===o?void 0:o.call(t))||Object.entries(t));try{for(s.s();!(a=s.n()).done;){var l=i(a.value,2),d=l[0],p=l[1];(null==c?void 0:c.append)?c.append.call(f,"string"==typeof d?r(d):d,e(p,r,n)):"__proto__"!==d&&(f[r("string"==typeof d?d:"".concat(d))]=e(p,r,n))}}catch(e){s.e(e)}finally{s.f()}return f},w=function(e,t,r){var n,i;r="boolean"==typeof r?{overwrite:r}:r;var a=function(e,t){var r="function"==typeof t?t:function(e){return t.includes(e)};return function(t,n){return r(t,n)?t:e(t,n)}}(function(e){return function(t,r){return e(t,o({stripRegexp:/[^A-Z0-9[\]]+/gi},r))}}(t),(null===(n=r)||void 0===n?void 0:n.preservedKeys)||[]);return O(e,a,(null===(i=r)||void 0===i?void 0:i.overwrite)||!1)},A=function(e){return function(t,r){return w(t,e,r)}},S=A((function(e,t){return void 0===t&&(t={}),function(e,t){return void 0===t&&(t={}),p(e,f({delimiter:"."},t))}(e,f({delimiter:"_"},t))})),R=A((function(e,t){return void 0===t&&(t={}),function(e,t){return void 0===t&&(t={}),p(e,f({delimiter:"",transform:v},t))}(e,f({transform:m},t))})),P=A((function(e,t){return void 0===t&&(t={}),function(e,t){return void 0===t&&(t={}),p(e,f({delimiter:" ",transform:b},t))}(e,f({delimiter:"-"},t))})),k=function(e,t){var r=null==t?void 0:t[e];return r?A(r):{snake:S,camel:R,header:P}[e]},x=function(e){for(var t={snake:S,camel:R,header:P},r=0,n=Object.keys(t);r<n.length;r++){var o=n[r];t[o]=k(o,e)}return t},C=function(e){var t=x(null==e?void 0:e.caseFunctions).snake;return function(r){return r.params&&(r.params=t(r.params,e)),r}},q=function(e){var t=x(null==e?void 0:e.caseFunctions),n=t.snake,a=t.header;return function(t,u){if(!(null==e?void 0:e.ignoreHeaders)&&g(u))for(var c=0,f=Object.entries(u);c<f.length;c++){var s=i(f[c],2),l=s[0],d=s[1];a(d,o({overwrite:!0},e)),["common","delete","get","head","post","put","patch"].includes(l)||(delete u[l],u[Object.keys(a(r({},l,null),e))[0]]=d)}return n(t,e)}},D=function(e){var t=x(null==e?void 0:e.caseFunctions).camel;return function(r,n){return(null==e?void 0:e.ignoreHeaders)||t(n,o({overwrite:!0},e)),t(r,e)}},I=C(),F=q(),_=D();e.camelResponse=_,e.createCamelResponse=D,e.createSnakeParams=C,e.createSnakeRequest=q,e.default=function(e,t){var r,n,o;return e.defaults.transformRequest=[(null==t||null===(r=t.converters)||void 0===r?void 0:r.snakeRequest)||q(t)].concat(a(Array.isArray(e.defaults.transformRequest)?e.defaults.transformRequest:void 0!==e.defaults.transformRequest?[e.defaults.transformRequest]:[])),e.defaults.transformResponse=[].concat(a(Array.isArray(e.defaults.transformResponse)?e.defaults.transformResponse:void 0!==e.defaults.transformResponse?[e.defaults.transformResponse]:[]),[(null==t||null===(n=t.converters)||void 0===n?void 0:n.camelResponse)||D(t)]),e.interceptors.request.use((null==t||null===(o=t.converters)||void 0===o?void 0:o.snakeParams)||C(t)),e},e.snakeParams=I,e.snakeRequest=F,Object.defineProperty(e,"__esModule",{value:!0})}));//# sourceMappingURL=axios-case-converter.min.js.map