UNPKG

angular-http-case-converter

Version:

A module providing simple way to convert request params and response body of backend requests

4 lines (3 loc) 3.22 kB
/*! angular-http-case-converter 0.1.2, 05-01-2016 */ !function(){"use strict";angular.module("ee.$http.CaseConverter",["ee.$http.CaseConverter.request.camelToSnake","ee.$http.CaseConverter.response.snakeToCamel"])}(),function(){"use strict";angular.module("ee.$http.CaseConverter.filter",[]).constant("eeHttpSnakeToCamelFilterFn",function(a){return a.replace(/_([a-zA-Z0-9])/g,function(a,b){return b.toUpperCase()})}).constant("eeHttpCamelToSnakeFilterFn",function(a){return a.replace(/[A-Z]/g,function(a){return"_"+a.toLowerCase()})}).filter("snakeToCamel",["eeHttpSnakeToCamelFilterFn",function(a){return a}]).filter("camelToSnake",["eeHttpCamelToSnakeFilterFn",function(a){return a}])}(),function(){"use strict";angular.module("ee.$http.CaseConverter.request.camelToSnake",["ee.$http.CaseConverter.utils","ee.$http.CaseConverter.settings"]).config(["$provide","$httpProvider",function(a,b){a.factory("httpCaseConverterCamelToSnakeRequestInterceptor",["eeHttpCaseConverterUtils","eeHttpCaseConverter",function(a,b){return{request:function(c){return b.condition.request.camelToSnake.data(c)&&(c.data=a.convertKeyCase.camelToSnake(c.data)),b.condition.request.camelToSnake.params(c)&&(c.params=a.convertKeyCase.camelToSnake(c.params)),c}}}]),b.interceptors.push("httpCaseConverterCamelToSnakeRequestInterceptor")}])}(),function(){"use strict";angular.module("ee.$http.CaseConverter.response.snakeToCamel",["ee.$http.CaseConverter.utils","ee.$http.CaseConverter.settings"]).config(["$provide","$httpProvider",function(a,b){a.factory("httpCaseConverterSnakeToCamelResponseInterceptor",["$q","eeHttpCaseConverterUtils","eeHttpCaseConverter",function(a,b,c){var d=function(a){return c.condition.response.snakeToCamel(a)&&(a.data=b.convertKeyCase.snakeToCamel(a.data)),a};return{response:function(a){return d(a)},responseError:function(b){return a.reject(d(b))}}}]),b.interceptors.push("httpCaseConverterSnakeToCamelResponseInterceptor")}])}(),function(){"use strict";angular.module("ee.$http.CaseConverter.settings",[]).provider("eeHttpCaseConverter",function(){var a=this;a.requestUrlFilter=function(){return!0},a.responseUrlFilter=function(){return!0},a.requestConfig={camelToSnake:{data:function(b){return["PATCH","POST","PUT"].indexOf(b.method)>-1&&!!b.data&&a.requestUrlFilter(b.url)},params:function(b){return!!b.params&&a.requestUrlFilter(b.url)}}},a.responseConfig={snakeToCamel:function(b){var c=b.headers("content-type"),d=a.responseUrlFilter(b.config.url);return!!c&&d&&c.split(";").map(function(a){return a.trim()}).indexOf("application/json")>-1}},a.$get=function(){return{condition:{request:a.requestConfig,response:a.responseConfig}}}})}(),function(){"use strict";angular.module("ee.$http.CaseConverter.utils",["ee.$http.CaseConverter.filter"]).service("eeHttpCaseConverterUtils",["$filter",function(a){function b(a){var b=Object.prototype.toString.call(a);return b.match(/\[object (.+)\]/)[1]}function c(a){return function c(d){return"Object"!==b(d)&&"Array"!==b(d)?d:Object.keys(d).reduce(function(b,e){return b[a(e)]=c(d[e]),b},Array.isArray(d)?[]:{})}}this.convertKeyCase={snakeToCamel:c(a("snakeToCamel")),camelToSnake:c(a("camelToSnake"))}}])}(); //# sourceMappingURL=angular-http-case-converter.min.js.map