Я использую библиотеку Confidence (в наборе HapiJS) для управления конфигурацией в моем проекте (этот файл конфигурации специально предназначен для транспорта WinstonJS), и мне было интересно, можно ли установить значение по умолчанию для одного элемента в отфильтрованном объекте. Я не уверен, что правильно объясняю, я не уверен, что это правильная терминология, поэтому вот пример:
У меня есть раздел моей настройки конфигурации, например:
module.exports = {
$filter: 'env',
development: {
level: {
console: 'debug',
file: 'debug'
},
path: 'app-core.log'
},
staging: {
level: {
console: 'warn',
file: 'warn'
},
path: 'app-core.log'
},
production: {
level: {
console: 'error',
file: 'error'
},
path: 'prod-app-core.log'
}
}
Но поскольку path должно быть одинаковым для всех элементов env, за исключением production, я надеялся, что смогу установить значение по умолчанию только для значения path. Что-то вроде этого:
module.exports = {
$filter: 'env',
development: {
level: {
console: 'debug',
file: 'debug'
}
},
staging: {
level: {
console: 'warn',
file: 'warn'
}
},
production: {
level: {
console: 'error',
file: 'error'
},
path: 'prod-app-core.log'
},
$default: {
path: 'app-core.log'
}
}
Очевидно, это не работает, но я надеюсь, что это иллюстрирует то, чего я пытаюсь достичь. Я не могу найти способ установить значения по умолчанию для отдельных элементов конфигурации внутри объектов, если я применяю фильтр (скажем, staging), то он берет весь промежуточный объект и даже не смотрит на объект $default.
Спасибо!
P.S. Хотя я хотел бы знать, возможно ли это через Confidence (для других целей), если выяснится, что это невозможно, то есть ли способ установить путь по умолчанию для файла WinstonJS транспортирует?