yandex-domain-configs
Tool for generating static domain configs.
Benefits
- Simple config inheritance.
- Simple domain config inheritance.
- Config validation against JSON-schema.
- Customizing domain list for different environments.
Installation
npm:
npm install --save-dev yandex-domain-configs
yarn:
yarn add -D yandex-domain-configs
Usage
npm:
node_modules/.bin/yandex-domain-configs [options]
yarn:
yarn yandex-domain-configs -- [options]
Options
-i, --input <filename> Input file
-o, --output-dir <dirname> Output directory
-s, --schema <filename> JSON Schema
-h, --help output usage information
Example
config.base.yaml
:
# default settings foo: 0# objects are merged recursively when overriden bar: baz: 1# domain settings override the default ones $domains: yandex.ru foo: 2 yandex.com # yandex.com will inherit settings from yandex.ru $extends: yandex.ru bar: baz: 3
config.production.yaml
:
$extends: config.base.yaml# these settings override the default ones in the base config bar: baz: 5# domains not listed here will be ignored $domainList: - yandex.ru - yandex.com# these settings override domain settings in the base config $domains: yandex.ru foo: 6
config.schema.yaml
:
title: Project configurationtype: objectrequired: - foo - barproperties: foo: title: Foo description type: integer bar: title: Bar description type: object required: - baz properties: baz: title: Baz description type: integer
Command
yarn yandex-domain-configs -- -i config.production.xml -o production -s config.schema.yaml
Result
production/yandex.ru.json
:
production/yandex.com.json
: