https://github.com/gemini-testing/configparser
Parser for configurations
https://github.com/gemini-testing/configparser
testplane
Last synced: about 1 month ago
JSON representation
Parser for configurations
- Host: GitHub
- URL: https://github.com/gemini-testing/configparser
- Owner: gemini-testing
- License: mit
- Created: 2015-06-10T14:48:47.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-01-21T17:59:46.000Z (4 months ago)
- Last Synced: 2025-03-25T07:51:10.385Z (about 2 months ago)
- Topics: testplane
- Language: JavaScript
- Homepage:
- Size: 85 KB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# @gemini/configparser
Parser for [`testplane`](https://github.com/gemini-testing/testplane) configuration files.
Config is described with a combination of a functions:
```js
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})`.