reactant-di
Version:
A dependency injection lib for Reactant
18 lines (15 loc) • 802 B
JavaScript
import 'reflect-metadata';
import { decorate, optional } from 'inversify';
import { multiInject } from './multiInject.js';
import { METADATA_KEY } from '../constants.js';
import { setMetadata } from '../util.js';
function multiOptional(serviceIdentifier) {
return function (target, key, index) {
var paramtypes = Reflect.getMetadata(METADATA_KEY.paramtypes, target);
setMetadata(METADATA_KEY.optional, paramtypes === null || paramtypes === void 0 ? void 0 : paramtypes[index], serviceIdentifier);
setMetadata(METADATA_KEY.multiple, paramtypes === null || paramtypes === void 0 ? void 0 : paramtypes[index], serviceIdentifier);
decorate(multiInject(serviceIdentifier), target, index);
decorate(optional(), target, index);
};
}
export { multiOptional };