UNPKG

comic-vine-sdk

Version:

A JS/TS client for the Comic Vine API

27 lines 4.56 kB
import { isObject } from './is-object.js'; export const toCamelCase = (str) => { return str.replace(/([-_][a-z])/gi, ($1) => { return $1.toUpperCase().replace('-', '').replace('_', ''); }); }; export const toSnakeCase = (str) => str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`); const convertCase = (caseConverter, object) => { if (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; }; export const convertSnakeCaseToCamelCase = (object) => { return convertCase(toCamelCase, object); }; export const convertCamelCaseToSnakeCase = (object) => { return convertCase(toSnakeCase, object); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvY2FzZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFFO0lBQ2pELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN6QyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUN6QyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBSWhFLE1BQU0sV0FBVyxHQUFHLENBQ2xCLGFBQTRCLEVBQzVCLE1BQWUsRUFDTixFQUFFO0lBQ1gsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBaUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzdELFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQ3pDLGFBQWEsRUFDWixNQUFrQyxDQUFDLEdBQUcsQ0FBQyxDQUN6QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO1NBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDakMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUN6QyxNQUFlLEVBQ0gsRUFBRTtJQUNkLE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQWUsQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUN6QyxNQUFlLEVBQ0gsRUFBRTtJQUNkLE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQWUsQ0FBQztBQUN4RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4vaXMtb2JqZWN0LmpzJztcblxuZXhwb3J0IGNvbnN0IHRvQ2FtZWxDYXNlID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oWy1fXVthLXpdKS9naSwgKCQxKSA9PiB7XG4gICAgcmV0dXJuICQxLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcnKS5yZXBsYWNlKCdfJywgJycpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b1NuYWtlQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cbiAgc3RyLnJlcGxhY2UoL1tBLVpdL2csIChsZXR0ZXIpID0+IGBfJHtsZXR0ZXIudG9Mb3dlckNhc2UoKX1gKTtcblxudHlwZSBDYXNlQ29udmVydGVyID0gKHN0cjogc3RyaW5nKSA9PiBzdHJpbmc7XG5cbmNvbnN0IGNvbnZlcnRDYXNlID0gKFxuICBjYXNlQ29udmVydGVyOiBDYXNlQ29udmVydGVyLFxuICBvYmplY3Q6IHVua25vd24sXG4pOiB1bmtub3duID0+IHtcbiAgaWYgKGlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICBjb25zdCBuZXdPYmplY3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICBPYmplY3Qua2V5cyhvYmplY3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgbmV3T2JqZWN0W2Nhc2VDb252ZXJ0ZXIoa2V5KV0gPSBjb252ZXJ0Q2FzZShcbiAgICAgICAgY2FzZUNvbnZlcnRlcixcbiAgICAgICAgKG9iamVjdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3T2JqZWN0O1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3QubWFwKChhcnJheUVsZW1lbnQpID0+XG4gICAgICBjb252ZXJ0Q2FzZShjYXNlQ29udmVydGVyLCBhcnJheUVsZW1lbnQpLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gb2JqZWN0O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRTbmFrZUNhc2VUb0NhbWVsQ2FzZSA9IDxSZXR1cm5UeXBlPihcbiAgb2JqZWN0OiB1bmtub3duLFxuKTogUmV0dXJuVHlwZSA9PiB7XG4gIHJldHVybiBjb252ZXJ0Q2FzZSh0b0NhbWVsQ2FzZSwgb2JqZWN0KSBhcyBSZXR1cm5UeXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDYW1lbENhc2VUb1NuYWtlQ2FzZSA9IDxSZXR1cm5UeXBlPihcbiAgb2JqZWN0OiB1bmtub3duLFxuKTogUmV0dXJuVHlwZSA9PiB7XG4gIHJldHVybiBjb252ZXJ0Q2FzZSh0b1NuYWtlQ2FzZSwgb2JqZWN0KSBhcyBSZXR1cm5UeXBlO1xufTtcbiJdfQ==