Внедрить определенные значения в конструктор объекта
У меня есть несколько реализаций интерфейса, и каждая из них нуждается в собственной конфигурации, вводимой в конструктор. Мой вопрос заключается в том, могу ли я каким-то образом подключить систему внедрения зависимостей в NestJS (предположительно Inversify), чтобы внедрить не просто объект конфигурации, но конкретное подмножество объекта конфигурации. Например, если config.ts
выглядит так:
const config = {
http: {
host: '0.0.0.0',
port: 3000,
},
adapters: {
disk: {
path: 'C:\\path\\to\\my\\stuff',
},
dropbox: {
api_key: 'asdfghjkl;',
api_secret: 'blahblahblahblahblah'
}
},
};
Я хочу ввести конфиг таким образом, чтобы моя реализация на диске получала config.adapters.disk
Дропбокс получает config.adapters.dropbox
и т.д. не только config
1 ответ
Если я хорошо понимаю ваш запрос, вы можете использовать провайдера с useValue или useFactory в зависимости от того, что вы должны решить, прежде чем вводиться. Я позволю вам взглянуть на эту часть документации.
В качестве примера вы можете сделать { token: 'myToken', useValue: config.property }
И тогда вам просто нужно вставить myToken в ваш конструктор.
Также useFactory позволит вам обработать что-то перед возвратом значения