1 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
2 |
|
3 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
4 |
|
5 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
6 |
|
7 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
8 |
|
9 | function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
10 |
|
11 | var SNAKE_CASE_MATCH = /_\w/g;
|
12 |
|
13 | var snakeToCamel = function snakeToCamel(str) {
|
14 | return str.replace(SNAKE_CASE_MATCH, function (chars) {
|
15 | return chars[1].toUpperCase();
|
16 | });
|
17 | };
|
18 |
|
19 | var transformKeysSnakeToCamel = function transformKeysSnakeToCamel(obj) {
|
20 | return Object.keys(obj).reduce(function (memo, key) {
|
21 | var newValue = obj[key];
|
22 | var camelKey = snakeToCamel(key);
|
23 |
|
24 | if (newValue && _typeof(newValue) === 'object' && !Array.isArray(newValue)) {
|
25 | newValue = transformKeysSnakeToCamel(newValue);
|
26 | }
|
27 |
|
28 | return _objectSpread(_objectSpread({}, memo), {}, _defineProperty({}, camelKey, newValue));
|
29 | }, {});
|
30 | };
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 | var makeJsonRequest = function makeJsonRequest(request, transformers) {
|
37 | return function (url, options) {
|
38 | return request(url, options).then(function (response) {
|
39 | return transformers.reduce(function (acc, transformer) {
|
40 | var memo = acc;
|
41 | memo = transformer(response);
|
42 | return memo;
|
43 | }, response);
|
44 | });
|
45 | };
|
46 | };
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 | export var BaseApi = function BaseApi(req) {
|
54 | _classCallCheck(this, BaseApi);
|
55 |
|
56 | _defineProperty(this, "request", void 0);
|
57 |
|
58 | this.request = makeJsonRequest(req, [transformKeysSnakeToCamel]);
|
59 | }; |
\ | No newline at end of file |