UNPKG

@fiizy/fitch

Version:
61 lines 2.07 kB
var isObject = function (value) { return typeof value === 'object' && value !== null; }; var isArray = function (value) { return value instanceof Array; }; function toCamel(value) { return value.replace(/([-_][a-z])/gi, function (newValue) { return newValue .toUpperCase() .replace('-', '') .replace('_', ''); }); } function toSnake(value) { return value.replace(/[A-Z]/g, function (newValue) { return "_".concat(newValue.toLowerCase().replace(/^_/, '')); }); } function arrayContainsOnlyStringsOrNumbers(array) { return array.every(function (i) { return typeof i === 'string' || typeof i === 'number'; }); } function formatObject(o, path, replacer, filter) { if (isArray(o) && !arrayContainsOnlyStringsOrNumbers(o)) { return o.map(function (i, idx) { return formatObject(i, path.concat("[".concat(idx, "]")), replacer, filter); }); } else if (isObject(o)) { var n_1 = {}; var obj_1 = o; Object.keys(obj_1).forEach(function (k) { if (!filter || !filter(k, path.concat(".".concat(k)))) { if (isObject(obj_1[k])) { n_1[replacer(k)] = formatObject(obj_1[k], path.concat(".".concat(k)), replacer, filter); } else { n_1[replacer(k)] = obj_1[k]; } } else { n_1[k] = obj_1[k]; } }); return n_1; } } function transformToSnake(request, filter) { if (request.body) { request.body = formatObject(request.body, 'body', function (s) { return toSnake(s); }, filter); } return request; } function transformToCamel(response, filter) { if (response.parsedBody) { response.parsedBody = formatObject(response.parsedBody, 'body', function (s) { return toCamel(s); }, filter); } return response; } export { transformToCamel, transformToSnake }; //# sourceMappingURL=transformers.js.map