Socket
Socket
Sign inDemoInstall

decarg

Package Overview
Dependencies
1
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    decarg

decorator based cli arguments parser


Version published
Weekly downloads
69
increased by68.29%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

decarg

decorator based cli arguments parser

npm i decarg pnpm add decarg yarn add decarg

Examples

# basic
    # view source example/basic.ts

    import { arg, decarg } from 'decarg'
    
    class Options {
      @arg('<file> [<file>, decarg.]', 'Files to process') file!: string[]
    
      @arg('--', '[decarg.rest]', 'The rest of the arguments') passArgs = []
    
      @arg('-f', '--flag', 'Flag about something') flag = false
    
      @arg('-c', '--count', 'How many times') count = 42
    
      @arg('-C', 'Choose color', ['blue', 'red', 'yellow']) color = 'blue'
    
      @arg('-s', '--string', 'Some string') string = 'hmm'
    
      @arg('--meh', 'Meh') meh: string[] = []
    
      static examples = {
        '-f foo': 'Convert foo by force',
        '-f foo -s': 'Convert foo by force smoothly',
      }
    }
    
    const options = decarg(new Options())
    
    // these fail:
    
    // const options = decarg(new Options(), ['exec'])
    // const options = decarg(new Options(), ['exec', '-C'])
    // const options = decarg(new Options(), ['exec', '-C=green'])
    // const options = decarg(new Options(), ['exec', '-c=not a number'])
    
    // this passes:
    
    // const options = decarg(new Options(), ['exec', 'foo'])
    
    console.log(options)
    

API

# OptionExpectedValueError src/errors.ts#L20

    # constructor(option) src/errors.ts#L22
    # option src/errors.ts#L21

      Option<T>

    # prepareStackTrace

      # (err, stackTraces)

        # err

          Error

        # stackTraces

          CallSite []

        (err, stackTraces)  =>

      # stackTraceLimit

        number

      # captureStackTrace(targetObject, constructorOpt)

        # targetObject

          object

        # constructorOpt

          Function

        captureStackTrace(targetObject, constructorOpt)  =>

      # OptionHelpRequested src/errors.ts#L49

        # constructor(options) src/errors.ts#L50
        # prepareStackTrace

          # (err, stackTraces)

            # err

              Error

            # stackTraces

              CallSite []

            (err, stackTraces)  =>

          # stackTraceLimit

            number

          # captureStackTrace(targetObject, constructorOpt)

            # targetObject

              object

            # constructorOpt

              Function

            captureStackTrace(targetObject, constructorOpt)  =>

          # OptionInvalidValueError src/errors.ts#L35

            # constructor(option, value) src/errors.ts#L37
            # option src/errors.ts#L36

              Option<T>

            # prepareStackTrace

              # (err, stackTraces)

                # err

                  Error

                # stackTraces

                  CallSite []

                (err, stackTraces)  =>

              # stackTraceLimit

                number

              # captureStackTrace(targetObject, constructorOpt)

                # targetObject

                  object

                # constructorOpt

                  Function

                captureStackTrace(targetObject, constructorOpt)  =>

              # OptionValidationError src/errors.ts#L8

                # constructor(message) src/errors.ts#L9
                # prepareStackTrace

                  # (err, stackTraces)

                    # err

                      Error

                    # stackTraces

                      CallSite []

                    (err, stackTraces)  =>

                  # stackTraceLimit

                    number

                  # captureStackTrace(targetObject, constructorOpt)

                    # targetObject

                      object

                    # constructorOpt

                      Function

                    captureStackTrace(targetObject, constructorOpt)  =>

                  # arg(description) src/arg.ts#L7

                    # description

                      ArgDescription

                    arg(description)  =>

                      # target

                        Function

                      (target)  =>

                        # target

                          Object

                        # propertyKey

                          string | symbol

                        (target, propertyKey)  =>

                      # decarg(target, argv, { exit, log }) src/index.ts#L17

                        # target
                        # argv  =  ...

                          string []

                        # overrides  =  {}

                          {

                          # exit

                            undefined |

                            # (code)

                              # code

                                number

                              (code)  =>

                            # log

                              undefined | {

                              # data

                                any []

                              (data)  =>

                                # data

                                  any []

                                (data)  =>

                                  # message

                                    any

                                  # optionalParams

                                    any []

                                  (message, optionalParams)  =>

                                decarg<T>(target, argv, { exit, log })  =>

                              # parse(target, argv) src/parse.ts#L17

                                # target
                                # argv  =  ...

                                  string []

                                parse<T>(target, argv)  =>

                              Credits

                              Contributing

                              Fork or edit and submit a PR.

                              All contributions are welcome!

                              License

                              MIT © 2022 stagas

                              Keywords

                              FAQs

                              Last updated on 21 Aug 2022

                              Did you know?

                              Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

                              Install

                              Related posts

                              SocketSocket SOC 2 Logo

                              Product

                              • Package Alerts
                              • Integrations
                              • Docs
                              • Pricing
                              • FAQ
                              • Roadmap

                              Stay in touch

                              Get open source security insights delivered straight into your inbox.


                              • Terms
                              • Privacy
                              • Security

                              Made with ⚡️ by Socket Inc