JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 81
  • Score
    100M100P100Q79671F
  • License Apache-2.0

A minimal utility function library that converts camelCase to snake_case and snake_case to camelCase.

Package Exports

  • convert-cases
  • convert-cases/dist/cjs/convert-cases.js
  • convert-cases/dist/esm/convert-cases.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (convert-cases) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

convert-cases

Utilities to convert camelCase to sanke_case and snake_case to camelCase.
Nested object keys can also be converted together.

Get started

// use npm
$ npm i convert-cases -S

// use Yarn
$ yarn add convert-cases

Usage

4 functions are provided.

  • deeplyCamelize : Convert all nested object keys to camelCase.
  • deeplySnakize : Convert all nested object keys to snake_case.
  • snakeToCamel : Converts single string to camelCase.
  • camelToSnake : Converts single string to snake_case.

How to camelCase the keys of nested objects together

import { deeplyCamelize } from 'convert-cases'

const obj = {
  test_case: '1',
  array: [
    { array_case: 1 },
    { array_case: 2 },
  ],
}

deeplyCamelize(obj) // { testCase: '1', array: [ { arrayCase: 1 }, { arrayCase: 2 } ] }

In the case of TypeScript

You can specify the input and output types using generics:

deeplyCamelize<BeforeObjType, AfterObjType>(obj)

However, both type parameters are optional. If omitted, the input type will be inferred from the argument, and the output will be inferred as the camelCase equivalent of the input type:

const result = deeplyCamelize({
  test_case: '1',
  array: [
    { array_case: 1 },
    { array_case: 2 },
  ],
})

// inferred:
// {
//   testCase: '1',
//   array: [
//     { arrayCase: 1 },
//     { arrayCase: 2 },
//   ],
// }

The type transformation is recursive and accurately reflects the actual runtime output.

How to snake_case the keys of nested objects together

import { deeplySnakize } from 'convert-cases'

const obj = {
  testCase: '1',
  array: [
    { arrayCase: 1 },
    { arrayCase: 2 },
  ],
}

deeplySnakize(obj) // { test_case: '1', array: [ { array_case: 1 }, { array_case: 2 } ] }

In the case of TypeScript

As with deeplyCamelize, you can provide both input and output types using generics:

deeplySnakize<BeforeObjType, AfterObjType>(obj)

But both type parameters are optional. If omitted, the input type is inferred automatically, and the output type will be inferred as the snake_case equivalent:

const result = deeplySnakize({
  testCase: '1',
  array: [
    { arrayCase: 1 },
    { arrayCase: 2 },
  ],
})

// inferred:
// {
//   test_case: '1',
//   array: [
//     { array_case: 1 },
//     { array_case: 2 },
//   ],
// }

How to convert a single string to camelCase

import { snakeToCamel } from 'convert-cases'

snakeToCamel('snake_case') // 'snakeCase'

How to convert a single string to snake_case

import { camelToSnake } from 'convert-cases'

snakeToCamel('camelCase') // 'camel_case'