@fiizy/fitch
Version:
Fiizy fetch wrapper
56 lines • 1.75 kB
JavaScript
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