UNPKG

ts-ioc-container

Version:
10 lines (9 loc) 666 B
import { isDependencyKey } from '../container/IContainer'; import { getMetadata, setMetadata } from '../metadata'; import { isProviderPipe } from '../provider/ProviderPipe'; export const scope = (...predicates) => (r) => r.when(...predicates); const METADATA_KEY = 'registration'; export const getTransformers = (Target) => getMetadata(Target, METADATA_KEY) ?? []; export const register = (...mappers) => setMetadata(METADATA_KEY, mappers.map((m) => (isProviderPipe(m) ? (r) => m.mapRegistration(r) : m))); export const asAlias = (target) => (r) => r.bindToAlias(isDependencyKey(target) ? target : target.key); export const asKey = (key) => (r) => r.bindToKey(key);