@abcnews/alternating-case-to-object
TypeScript icon, indicating that this package has built-in type declarations

3.1.1 • Public • Published

Alternating Case to Object

A function to convert ALTERNATINGcase strings to objects.

Usage

npm i @abcnews/alternating-case-to-object
const alternatingCaseToObject = require('@abcnews/alternating-case-to-object');

alternatingCaseToObject('PROPvalueSECONDthingALLOWEDyesTHINGS100');

// >>>

{
  prop: 'value',
  second: 'thing',
  allowed: true,
  things: 100
}

Automatic type inference

  • Number values will be parsed as floats.
  • The values "true", "yes", "false" & "no" will be converted to the booleans true, true, false & false, respectively.
  • If a prop appears more than once, multiple values will be returned as an array:
alternatingCaseToObject('GROUPfirstGROUPsecondGROUPthird');

// >>>

{
  group: ['first', 'second', 'third'];
}

Every value in a prop which appears multiple times must be of the same type or an exception will be thrown. For example, this will throw:

alternatingCaseToObject('AtrueAstr');

Options

You can pass an object as a second argument, defining one or more options:

arrayProps:Array

Props in this array will always be returned as arrays, even if they occur in the config string zero or one time.

alternatingCaseToObject('AtrueAfalseBvalueAtrueDvalue', {
  arrayProps: ['a', 'b', 'c']
});

// >>>

{
  a: [true, false, true],
  b: ['value'],
  c: [],
  d: 'value'
}

propMap:Object

Props in the config will be renamed if they occur in this object.

alternatingCaseToObject('CAMELCASEtrueKEBABCASE100', {
  propMap: {
    camelcase: 'camelCase',
    kebabcase: 'kebab-case'
  }
});

// >>>

{
  camelCase: true,
  'kebab-case': 100
}

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
3.1.19latest

Version History

VersionDownloads (Last 7 Days)Published
3.1.19
3.1.01
3.0.21
3.0.11
3.0.01
2.0.11
2.0.02

Package Sidebar

Install

npm i @abcnews/alternating-case-to-object

Weekly Downloads

16

Version

3.1.1

License

ISC

Unpacked Size

27.2 kB

Total Files

10

Last publish

Collaborators

  • ashkyd
  • jtfell
  • phocks
  • andrewkesper
  • drzax