UNPKG

@inversifyjs/core

Version:

InversifyJs core package

16 lines 1.68 kB
import { ClassElementMetadata } from '../models/ClassElementMetadata'; import { ManagedClassElementMetadata } from '../models/ManagedClassElementMetadata'; import { MaybeClassElementMetadata } from '../models/MaybeClassElementMetadata'; import { MaybeManagedClassElementMetadata } from '../models/MaybeManagedClassElementMetadata'; type Or<T extends unknown[]> = T extends [infer First, ...infer Rest] ? First | Or<Rest> : never; type BuildDefaultMetadataFunction<TParams extends unknown[][], TResult> = TParams extends [ infer First extends unknown[], ...infer Rest extends unknown[][] ] ? ((...params: First) => TResult) & BuildDefaultMetadataFunction<Rest, TResult> : (...params: any[]) => TResult; type BuildMetadataFromMaybeManagedMetadataFunction<TParams extends unknown[][], TResult> = TParams extends [ infer First extends unknown[], ...infer Rest extends unknown[][] ] ? ((metadata: MaybeManagedClassElementMetadata | ManagedClassElementMetadata, ...params: First) => TResult) & BuildMetadataFromMaybeManagedMetadataFunction<Rest, TResult> : (metadata: MaybeManagedClassElementMetadata | ManagedClassElementMetadata, ...params: any[]) => TResult; export declare function buildClassElementMetadataFromMaybeClassElementMetadata<TParams extends unknown[][]>(buildDefaultMetadata: BuildDefaultMetadataFunction<TParams, ClassElementMetadata>, buildMetadataFromMaybeManagedMetadata: BuildMetadataFromMaybeManagedMetadataFunction<TParams, ClassElementMetadata>): (...params: Or<TParams>) => (metadata: MaybeClassElementMetadata | undefined) => ClassElementMetadata; export {}; //# sourceMappingURL=buildClassElementMetadataFromMaybeClassElementMetadata.d.ts.map