Git Product home page Git Product logo

configparser's Introduction

@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}).

configparser's People

Contributors

dudagod avatar j0tunn avatar levonet avatar oldskytree avatar sipayrt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.