ts-case-convert

npm version npm bundle size npm type definitions GitHub package.json dependency version (dev dep on branch) Documentation Maintenance License: Apache--2.0

ts-case-convert converts object keys between camelCase and snake_case while preserving Typescript type information, code completion, and type validation. See tests for detailed conversion tests. ## Usage ```typescript const camel = objectToCamel({ hello_world: 'helloWorld', a_number: 5, an_array: [1, 2, 4], null_object: null, undef_object: undefined, an_array_of_objects: [{ a_b: 'ab', a_c: 'ac' }], an_object: { a_1: 'a1', a_2: 'a2', }, }); type CheckCamel = typeof camel.anArrayOfObjects[0]['aB']; // -> 'string' const ab: CheckCamel = camel.anArrayOfObjects[0]['aB']; // -> valid console.log(camel.anArrayOfObjects.aB); // -> 'ab' const snake = objectToSnake({ helloWorld: 'helloWorld', aNumber: 5, anArray: [1, 2, 4], nullObject: null, undefObject: undefined, anArrayOfObjects: [{ aB: 'ab', aC: 'ac' }], anObject: { A1: 'a_1', A2: 'a_2', }, }); type CheckSnake = typeof snake.an_array_of_objects[0]['a_b']; // -> 'string' const ab: CheckSnake = snake.an_array_of_objects[0]['a_b']; // -> valid console.log(snake.an_array_of_objects.a_b); // -> 'ab' ``` ## Run tests ```sh yarn run test ``` ## Documentation See [tests](./test/caseConvert.test.ts). ## 📝 License Copyright © 2021 [Ross Williams](https://github.com/RossWilliams).
This project is [Apache--2.0](https://github.com/RossWilliams/ts-case-convert/blob/master/LICENSE) licensed.