UNPKG

@fiizy/fitch

Version:
56 lines 1.75 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, replacer) { if (isArray(o) && !arrayContainsOnlyStringsOrNumbers(o)) { return o.map(function (i) { return formatObject(i, replacer); }); } else if (isObject(o)) { var n_1 = {}; var obj_1 = o; Object.keys(obj_1).forEach(function (k) { if (isObject(obj_1[k])) { n_1[replacer(k)] = formatObject(obj_1[k], replacer); } else { n_1[replacer(k)] = obj_1[k]; } }); return n_1; } } function transformToSnake(request) { if (request.body) { request.body = formatObject(request.body, function (s) { return toSnake(s); }); } return request; } function transformToCamel(response) { if (response.parsedBody) { response.parsedBody = formatObject(response.parsedBody, function (s) { return toCamel(s); }); } return response; } export { transformToCamel, transformToSnake }; //# sourceMappingURL=transformers.js.map