comic-vine-sdk
Version:
A JS/TS client for the Comic Vine API
34 lines • 5.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertCamelCaseToSnakeCase = exports.convertSnakeCaseToCamelCase = exports.toSnakeCase = exports.toCamelCase = void 0;
const is_object_js_1 = require("./is-object.js");
const toCamelCase = (str) => {
return str.replace(/([-_][a-z])/gi, ($1) => {
return $1.toUpperCase().replace('-', '').replace('_', '');
});
};
exports.toCamelCase = toCamelCase;
const toSnakeCase = (str) => str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
exports.toSnakeCase = toSnakeCase;
const convertCase = (caseConverter, object) => {
if ((0, is_object_js_1.isObject)(object)) {
const newObject = {};
Object.keys(object).forEach((key) => {
newObject[caseConverter(key)] = convertCase(caseConverter, object[key]);
});
return newObject;
}
else if (Array.isArray(object)) {
return object.map((arrayElement) => convertCase(caseConverter, arrayElement));
}
return object;
};
const convertSnakeCaseToCamelCase = (object) => {
return convertCase(exports.toCamelCase, object);
};
exports.convertSnakeCaseToCamelCase = convertSnakeCaseToCamelCase;
const convertCamelCaseToSnakeCase = (object) => {
return convertCase(exports.toSnakeCase, object);
};
exports.convertCamelCaseToSnakeCase = convertCamelCaseToSnakeCase;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvY2FzZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTBDO0FBRW5DLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFVLEVBQUU7SUFDakQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUpXLFFBQUEsV0FBVyxlQUl0QjtBQUVLLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDekMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQURuRCxRQUFBLFdBQVcsZUFDd0M7QUFJaEUsTUFBTSxXQUFXLEdBQUcsQ0FDbEIsYUFBNEIsRUFDNUIsTUFBZSxFQUNOLEVBQUU7SUFDWCxJQUFJLElBQUEsdUJBQVEsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxHQUE0QixFQUFFLENBQUM7UUFFOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFpQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0QsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FDekMsYUFBYSxFQUNaLE1BQWtDLENBQUMsR0FBRyxDQUFDLENBQ3pDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUNqQyxXQUFXLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUN6QyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVLLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsTUFBZSxFQUNILEVBQUU7SUFDZCxPQUFPLFdBQVcsQ0FBQyxtQkFBVyxFQUFFLE1BQU0sQ0FBZSxDQUFDO0FBQ3hELENBQUMsQ0FBQztBQUpXLFFBQUEsMkJBQTJCLCtCQUl0QztBQUVLLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsTUFBZSxFQUNILEVBQUU7SUFDZCxPQUFPLFdBQVcsQ0FBQyxtQkFBVyxFQUFFLE1BQU0sQ0FBZSxDQUFDO0FBQ3hELENBQUMsQ0FBQztBQUpXLFFBQUEsMkJBQTJCLCtCQUl0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi9pcy1vYmplY3QuanMnO1xuXG5leHBvcnQgY29uc3QgdG9DYW1lbENhc2UgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbLV9dW2Etel0pL2dpLCAoJDEpID0+IHtcbiAgICByZXR1cm4gJDEudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJycpLnJlcGxhY2UoJ18nLCAnJyk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvU25ha2VDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuICBzdHIucmVwbGFjZSgvW0EtWl0vZywgKGxldHRlcikgPT4gYF8ke2xldHRlci50b0xvd2VyQ2FzZSgpfWApO1xuXG50eXBlIENhc2VDb252ZXJ0ZXIgPSAoc3RyOiBzdHJpbmcpID0+IHN0cmluZztcblxuY29uc3QgY29udmVydENhc2UgPSAoXG4gIGNhc2VDb252ZXJ0ZXI6IENhc2VDb252ZXJ0ZXIsXG4gIG9iamVjdDogdW5rbm93bixcbik6IHVua25vd24gPT4ge1xuICBpZiAoaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIGNvbnN0IG5ld09iamVjdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKG9iamVjdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBuZXdPYmplY3RbY2FzZUNvbnZlcnRlcihrZXkpXSA9IGNvbnZlcnRDYXNlKFxuICAgICAgICBjYXNlQ29udmVydGVyLFxuICAgICAgICAob2JqZWN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXdPYmplY3Q7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG9iamVjdC5tYXAoKGFycmF5RWxlbWVudCkgPT5cbiAgICAgIGNvbnZlcnRDYXNlKGNhc2VDb252ZXJ0ZXIsIGFycmF5RWxlbWVudCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBvYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydFNuYWtlQ2FzZVRvQ2FtZWxDYXNlID0gPFJldHVyblR5cGU+KFxuICBvYmplY3Q6IHVua25vd24sXG4pOiBSZXR1cm5UeXBlID0+IHtcbiAgcmV0dXJuIGNvbnZlcnRDYXNlKHRvQ2FtZWxDYXNlLCBvYmplY3QpIGFzIFJldHVyblR5cGU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydENhbWVsQ2FzZVRvU25ha2VDYXNlID0gPFJldHVyblR5cGU+KFxuICBvYmplY3Q6IHVua25vd24sXG4pOiBSZXR1cm5UeXBlID0+IHtcbiAgcmV0dXJuIGNvbnZlcnRDYXNlKHRvU25ha2VDYXNlLCBvYmplY3QpIGFzIFJldHVyblR5cGU7XG59O1xuIl19