Nuclear Planning Manual

    gemini-configparser
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.0 • Public • Published

    @gemini/configparser

    Parser for gemini configuration files.

    Config is described with a combination of a functions:

    var parser = root(section({
        system: section({
            parallelLimit: option({
                parseEnv: Number,
                parseCli: Number,
                validate: function() {...}
            })
        }),
        browsers: map(
            section({
                calibrate: option(...),
                windowSize: option(...)
            })
        )
    })

    There are 4 types of values:

    • option({defaultValue, parseCli, parseEnv, validate, map}) - a single scalar option.
      • defaultValue - a default value to use if option is not provided
      • defaultValue(config, currentNode) - a function to compute default value
      • parseCli(value) - a function used to parse command-line arguments
      • parseEnv(value) - a function used to parse environment variable
      • validate(value, config, currentNode, meta) - a function used to validate the option value
      • map(value, config, currentNode, meta) - a function used to transform the option value
    • section({sectionName1: valueParser1, sectionName2: valueParser2, ...}) - a section of a values with specified key names. Each option will parsed with appropriate parser function. Any unknown value passed by user will be treated as an error.
    • map(valueParser, defaultValue) - a map with any number of user-specified keys. Each value is parsed by valueParser. If set, defaultValue will be used in case of no user-specified data provided.
    • root(parser, {envPrefix, cliPrefix}) - creates a root config parsers from specifed parser function. Returns function with signature f({options, env, argv}).

    Keywords

    none

    Install

    npm i gemini-configparser

    DownloadsWeekly Downloads

    2,022

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    15.1 kB

    Total Files

    13

    Last publish

    Collaborators

    • sevinf
    • j0tunn
    • unlok
    • dudagod
    • sipayrt
    • xrsd
    • oldskytree
    • shadowusr