11.0.0 • Published 4 years ago

@peacefultruth/butterfly v11.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

butterfly

process arguments from a data description.

just pass me the description of the process argv, I will return you the parsed format.

yarn add @peacefultruth/butterfly
import butterfly from '@peacefultruth/butterfly';

const process_arguments = (
  process.argv || (
    [
      'node',
      'entry.js',

      'blah',
      '3.14',
      '-b',
      '4.14',
      '--blah',
      '5.14',

      'blahblah',
      '100',
      '-bb',
      '200',
      '--blahblah',
      '300',
      '--blah-blah',
      '400',
    ]
  )
);

expect(
  butterfly(
    {
      blah: {
        aliases: ['-b', '--blah'],
        is_multiple_lazy: true,
        type: Number,
        value: -1,
      },
      blahblah: {
        aliases: ['-bb', '--blahblah', '--blah-blah'],
        is_multiple_lazy: true,
        type: Number,
        value: -1,
      },
    },
    process_arguments
  )
).toEqual(
  {
    blah: {
      aliases: ['-b', '--blah'],
      is_multiple_lazy: true,
      type: Number,
      value: [3.14, 4.14, 5.14],
    },
    blahblah: {
      aliases: ['-bb', '--blahblah', '--blah-blah'],
      is_multiple_lazy: true,
      type: Number,
      value: [100, 200, 300, 400],
    },
  }
)