@inversifyjs/core
Version:
InversifyJs core package
39 lines • 1.51 kB
JavaScript
import { LazyServiceIdentifier, } from '@inversifyjs/common';
import { ResolvedValueElementMetadataKind } from '../../metadata/models/ResolvedValueElementMetadataKind.js';
export function tryBuildGetPlanOptionsFromResolvedValueElementMetadata(resolvedValueElementMetadata) {
let tag;
if (resolvedValueElementMetadata.tags.size === 0) {
tag = undefined;
}
else if (resolvedValueElementMetadata.tags.size === 1) {
const [key, value] = resolvedValueElementMetadata.tags.entries().next().value;
tag = { key, value };
}
else {
return undefined;
}
const serviceIdentifier = LazyServiceIdentifier.is(resolvedValueElementMetadata.value)
? resolvedValueElementMetadata.value.unwrap()
: resolvedValueElementMetadata.value;
if (resolvedValueElementMetadata.kind ===
ResolvedValueElementMetadataKind.multipleInjection) {
return {
chained: resolvedValueElementMetadata.chained,
isMultiple: true,
name: resolvedValueElementMetadata.name,
optional: resolvedValueElementMetadata.optional,
serviceIdentifier,
tag,
};
}
else {
return {
isMultiple: false,
name: resolvedValueElementMetadata.name,
optional: resolvedValueElementMetadata.optional,
serviceIdentifier,
tag,
};
}
}
//# sourceMappingURL=tryBuildGetPlanOptionsFromResolvedValueElementMetadata.js.map