UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

90 lines 3.12 kB
import { Alias } from './alias'; import { GenericArgument } from './generic-argument'; import { GenericMetadata } from './generic-metadata'; import { TypeArgument } from './type-argument'; import { TypeFn } from './type-fn'; import { TypeManager } from './type-manager'; import { TypeMetadata } from './type-metadata'; /** * Metadata class. * * Encapsulates common methods and properties which can be used by all types of metadata. * * @type {Metadata} */ export declare class Metadata { /** * Type manager. * * @type {TypeManager} */ readonly typeManager: TypeManager; /** * Type function map for types with aliases. * * @type {ReadonlyMap<Alias, TypeFn<any>>} */ private readonly typeFnMap; /** * Constructor. * * @param {TypeManager} typeManager Type manager. * @param {ReadonlyMap<Alias, TypeFn<any>>} typeFnMap Type function map for types with aliases. */ constructor(typeManager: TypeManager, typeFnMap: ReadonlyMap<Alias, TypeFn<any>>); /** * Resolves type metadatas for provided type arguments. * * @param {ReadonlyArray<TypeArgument<any>>} typeArguments Type arguments. * * @returns {ReadonlyArray<TypeMetadata<any>>} Resolved type metadatas. */ resolveTypeMetadatas(typeArguments: ReadonlyArray<TypeArgument<any>>): ReadonlyArray<TypeMetadata<any>>; /** * Resolves type metadata for provided type argument. * * @param {TypeArgument<any>} typeArgument Type argument. * * @returns {TypeMetadata<any>} Resolved type metadata. */ resolveTypeMetadata(typeArgument: TypeArgument<any>): TypeMetadata<any>; /** * Resolves type metadata using type resolver. * * @param {TypeMetadata<any>} typeArgument Type argument. * * @returns {TypeMetadata<any>} Type metadata resolved using type resolver. */ private resolveTypeMetadataUsingTypeResolver; /** * Resolves type metadata using type function. * * @param {TypeMetadata<any>} typeArgument Type argument. * * @returns {TypeMetadata<any>} Type metadata resolved using type function. */ private resolveTypeMetadataUsingTypeFn; /** * Resolves type metadata using alias. * * @param {TypeArgument<any>} typeArgument Type argument. * * @returns {TypeMetadata<any>} Type metadata resolved using alias. */ private resolveTypeMetadataUsingAlias; /** * Resolves type metadata using unknown type function. * * @returns {TypeMetadata<any>} Type metadata resolved using unknown type function. */ private resolveTypeMetadataUsingUnknownTypeFn; /** * Resolves generic metadatas based on provided generic arguments. * * @param {ReadonlyArray<GenericArgument<any>>} genericArguments Generic arguments. * * @returns {ReadonlyArray<GenericMetadata<any>>} Resolved generic metadatas. */ resolveGenericMetadatas(genericArguments: ReadonlyArray<GenericArgument<any>>): ReadonlyArray<GenericMetadata<any>>; } //# sourceMappingURL=metadata.d.ts.map