@coolio/http
Version:
HTTP networking client
71 lines • 3.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var isArray_1 = __importDefault(require("lodash/isArray"));
var isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
var BodyCasing;
(function (BodyCasing) {
BodyCasing["CAMEL_CASE"] = "CAMEL_CASE";
BodyCasing["SNAKE_CASE"] = "SNAKE_CASE";
BodyCasing["SCREAMING_SNAKE_CASE"] = "SCREAMING_SNAKE_CASE";
BodyCasing["PASCAL_CASE"] = "PASCAL_CASE";
BodyCasing["KEBAB_CASE"] = "KEBAB_CASE";
})(BodyCasing = exports.BodyCasing || (exports.BodyCasing = {}));
exports.splitWords = function (text) {
var words = (text.toUpperCase() === text
? text.split(/(?:[ _-]+)/)
: text.split(/(?:[ _-]+)|(?=[A-Z]+)/)).filter(Boolean);
return words.length === 0 ? [text] : words;
};
exports.deepKeyMap = function (object, mapper) {
if (isArray_1.default(object)) {
return object.map(function (value) { return exports.deepKeyMap(value, mapper); });
}
if (isPlainObject_1.default(object)) {
var result = {};
for (var key in object) {
if (object.hasOwnProperty(key)) {
result[mapper(key)] = exports.deepKeyMap(object[key], mapper);
}
}
return result;
}
return object;
};
exports.toCamelCase = function (object) { return exports.deepKeyMap(object, function (key) { return exports.splitWords(key)
.map(function (word, index) { return index > 0
? word[0].toUpperCase() + word.slice(1).toLowerCase()
: word.toLowerCase(); })
.join(''); }); };
exports.toPascalCase = function (object) { return exports.deepKeyMap(object, function (key) { return exports.splitWords(key)
.map(function (word) { return word[0].toUpperCase() + word.slice(1).toLowerCase(); })
.join(''); }); };
exports.toSnakeCase = function (object) { return exports.deepKeyMap(object, function (key) { return exports.splitWords(key)
.map(function (word) { return word.toLowerCase(); })
.join('_'); }); };
exports.toScreamingSnakeCase = function (object) { return exports.deepKeyMap(object, function (key) { return exports.splitWords(key)
.map(function (word) { return word.toUpperCase(); })
.join('_'); }); };
exports.toKebabCase = function (object) { return exports.deepKeyMap(object, function (key) { return exports.splitWords(key)
.map(function (word) { return word.toLowerCase(); })
.join('-'); }); };
exports.noConversion = function (object) { return object; };
exports.getCaseConverter = function (bodyCasing) {
switch (bodyCasing) {
case BodyCasing.CAMEL_CASE:
return exports.toCamelCase;
case BodyCasing.PASCAL_CASE:
return exports.toPascalCase;
case BodyCasing.SNAKE_CASE:
return exports.toSnakeCase;
case BodyCasing.SCREAMING_SNAKE_CASE:
return exports.toScreamingSnakeCase;
case BodyCasing.KEBAB_CASE:
return exports.toKebabCase;
default:
return exports.noConversion;
}
};
//# sourceMappingURL=caseConversion.helper.js.map