0.0.1 • Published 3 years ago

@prunus/humps v0.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Prunus Humps

Created in order to facilitate the conversion of properties and strings according to the adopted naming convention, equally humps. But with a difference that is the possibility to use the typescript string typing inserted in version 4.1.

Installation

yarn add @prunus/humps

Usage

Convert strings

import { camelize, pascalize, separatorlize } from '@prunus/humps'

camelize( 'hello_world' ) // helloWorld
camelize( 'HelloWorld' ) // helloWorld

pascalize( 'hello_world' ) // HelloWorld
pascalize( 'helloWorld' ) // HelloWorld

separatorlize( 'helloWorld' ) // hello_world
separatorlize( 'HelloWorld' ) // hello_world

Convert object properties

import { camelizeKeys } from '@prunus/humps'

const object = { attr_one: 'foo', AttrTwo: 'bar' }
const camelizeObject = camelizeKeys( object ) // { attrOne: 'foo', attrTwo: 'bar' }
import { separatorlizeKeys } from '@prunus/humps'
const object = { attrOne: 'foo', attrTwo: 'bar' }
const separatorlizeObject = separatorlizeKeys( object ) // { attr_one: 'foo', attr_two: 'bar' }
import { separatorlizeKeys } from '@prunus/humps'
const object = { attrOne: 'foo', attrTwo: 'bar' }
const separatorlizeObject = separatorlizeKeys( object, '-' ) // { 'attr-one': 'foo', 'attr-two': 'bar' }

Convert string types

import { Camelize, Pascalize, Separatorlize } from '@prunus/humps'

type CamelizeString = Camelize<'oh_typescript_definitions'> // ohTypescriptDefinitions
type PascalizeString = Pascalize<'oh_typescript_definitions'> // OhTypescriptDefinitions
type SeparatorlizeString = Separatorlize<'ohTypescriptDefinitions'> // oh_typescript_definitions
type SeparatorlizeStringWithHyphen = Separatorlize<'ohTypescriptDefinitions', '-'> // oh-typescript-definitions

Convert object types or interfaces

import { CamelizeKeys } from '@prunus/humps'

interface UglyObject {
  PascalCaseProperty: any
  snake_case_property: any
  'hyphen-case-property': any
}

type PrettyObject = CamelizeKeys<UglyObject> 
/* {
  pascalCaseProperty: any
  snakeCaseProperty: any
  hyphenCaseProperty: any
} */