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.
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'
yarn run test
See tests.
Copyright © 2021 Ross Williams.
This project is Apache--2.0 licensed.