ts-case-convert
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.1 • Public • Published

    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

    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

    yarn run test

    Documentation

    See tests.

    📝 License

    Copyright © 2021 Ross Williams.
    This project is Apache--2.0 licensed.

    Install

    npm i ts-case-convert

    DownloadsWeekly Downloads

    1,952

    Version

    1.3.1

    License

    Apache-2.0

    Unpacked Size

    41.3 kB

    Total Files

    13

    Last publish

    Collaborators

    • ross.williams