UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

277 lines 7.95 kB
import { Alias } from './alias'; import { CustomKey } from './custom-key'; import { CustomValue } from './custom-value'; import { DefaultValue } from './default-value'; import { DefaultValueResolver } from './default-value-resolver'; import { Discriminant } from './discriminant'; import { Discriminator } from './discriminator'; import { Factory } from './factory'; import { InjectIndex } from './inject-index'; import { InjectMetadata } from './inject-metadata'; import { InjectOptions } from './inject-options'; import { InjectSorter } from './inject-sorter'; import { Injector } from './injector'; import { Logger } from './logger'; import { NamingConvention } from './naming-convention'; import { NullValueResolver } from './null-value-resolver'; import { Optional } from './optional'; import { PropertyMetadata } from './property-metadata'; import { PropertyName } from './property-name'; import { PropertyOptions } from './property-options'; import { PropertySorter } from './property-sorter'; import { ReferenceHandler } from './reference-handler'; import { Serializer } from './serializer'; import { SerializerCallback } from './serializer-callback'; import { TypeArgument } from './type-argument'; import { TypeFn } from './type-fn'; import { TypeMetadata } from './type-metadata'; /** * Represents a type state at a certain moment in time. * * @type {TypeState<TObject>} */ export interface TypeState<TObject> { /** * Type metadata for which state is defined. * * @type {TypeMetadata<TObject>} */ readonly typeMetadata: TypeMetadata<TObject>; /** * Alias. * * @type {Optional<Alias>} */ readonly alias: Optional<Alias>; /** * Custom value map. * * @type {ReadonlyMap<CustomKey<any>, CustomValue>} */ readonly customValueMap: ReadonlyMap<CustomKey<any>, CustomValue>; /** * Serialized null value resolver. * * @type {NullValueResolver} */ readonly serializedNullValueResolver: NullValueResolver; /** * Serialized default value. * * @type {DefaultValue} */ readonly serializedDefaultValue: DefaultValue; /** * Serialized default value resolver. * * @type {DefaultValueResolver} */ readonly serializedDefaultValueResolver: DefaultValueResolver; /** * Deserialized null value resolver. * * @type {NullValueResolver} */ readonly deserializedNullValueResolver: NullValueResolver; /** * Deserialized default value. * * @type {DefaultValue} */ readonly deserializedDefaultValue: DefaultValue; /** * Deserialized default value resolver. * * @type {DefaultValueResolver} */ readonly deserializedDefaultValueResolver: DefaultValueResolver; /** * Serializer callback function to call before the serialization is started. * Can be an instance method name or a handler for which instance is provided. * * @type {Optional<SerializerCallback<TObject>>} */ readonly beforeSerializeCallback: Optional<SerializerCallback<TObject>>; /** * Serializer callback function to call after the deserialization is completed. * Can be an instance method name or a handler for which instance is provided. * * @type {Optional<SerializerCallback<TObject>>} */ readonly afterDeserializeCallback: Optional<SerializerCallback<TObject>>; /** * Discriminant. * * @type {Discriminant} */ readonly discriminant: Discriminant; /** * Discriminator. * * @type {Discriminator} */ readonly discriminator: Discriminator; /** * Factory. * * @type {Factory} */ readonly factory: Factory; /** * Injectable value. * * @type {Factory} */ readonly injectable: boolean; /** * Injector. * * @type {Injector} */ readonly injector: Injector; /** * Logger. * * @type {Logger} */ readonly logger: Logger; /** * Naming convention. * * @type {Optional<NamingConvention>} */ readonly namingConvention: Optional<NamingConvention>; /** * Indicator if current type metadata is polymorphic. * * @type {boolean} */ readonly polymorphic: boolean; /** * Type metadata map. * * @type {ReadonlyMap<TypeFn<any>, TypeMetadata<any>>} */ readonly typeMetadataMap: ReadonlyMap<TypeFn<any>, TypeMetadata<any>>; /** * Indicator if discriminator should be preserved. * * @type {boolean} */ readonly preserveDiscriminator: boolean; /** * Reference handler. * * @type {ReferenceHandler} */ readonly referenceHandler: ReferenceHandler; /** * Serializer. * * @type {Serializer<TObject>} */ readonly serializer: Serializer<TObject>; /** * Indicator if null value should be preserved. * * @type {boolean} */ readonly preserveNull: boolean; /** * Indicator if default value should be used. * * @type {boolean} */ readonly useDefaultValue: boolean; /** * Indicator if implicit conversion should be used. * * @type {boolean} */ readonly useImplicitConversion: boolean; /** * Property sorter. * * @type {Optional<PropertySorter>} */ readonly propertySorter: Optional<PropertySorter>; /** * Sorted property metadatas. * * @type {ReadonlyArray<PropertyMetadata<TObject, any>>} */ readonly sortedPropertyMetadatas: ReadonlyArray<PropertyMetadata<TObject, any>>; /** * Inject sorter. * * @type {Optional<InjectSorter>} */ readonly injectSorter: Optional<InjectSorter>; /** * Sorted inject metadatas. * * @type {ReadonlyArray<InjectMetadata<TObject, any>>} */ readonly sortedInjectMetadatas: ReadonlyArray<InjectMetadata<TObject, any>>; /** * Parent type arguments. * * @type {ReadonlyArray<TypeArgument<any>>} */ readonly parentTypeArguments: ReadonlyArray<TypeArgument<any>>; /** * Parent type metadatas. * * @type {ReadonlyArray<TypeMetadata<any>>} */ readonly parentTypeMetadatas: ReadonlyArray<TypeMetadata<any>>; /** * Own parent type metadatas. * * @type {ReadonlyArray<TypeMetadata<any>>} */ readonly ownParentTypeMetadatas: ReadonlyArray<TypeMetadata<any>>; /** * Child type metadatas. * * @type {ReadonlyArray<TypeMetadata<any>>} */ readonly childTypeMetadatas: ReadonlyArray<TypeMetadata<any>>; /** * Own child type metadatas. * * @type {ReadonlyArray<TypeMetadata<any>>} */ readonly ownChildTypeMetadatas: ReadonlyArray<TypeMetadata<any>>; /** * Property options map. * * @type {ReadonlyMap<PropertyName, PropertyOptions<any>>} */ readonly propertyOptionsMap: ReadonlyMap<PropertyName, PropertyOptions<any>>; /** * Property metadata map. * * @type {ReadonlyMap<PropertyName, PropertyMetadata<TObject, any>>} */ readonly propertyMetadataMap: ReadonlyMap<PropertyName, PropertyMetadata<TObject, any>>; /** * Own property metadata map. * * @type {ReadonlyMap<PropertyName, PropertyMetadata<TObject, any>>} */ readonly ownPropertyMetadataMap: ReadonlyMap<PropertyName, PropertyMetadata<TObject, any>>; /** * Inject options map. * * @type {ReadonlyMap<PropertyName, PropertyOptions<any>>} */ readonly injectOptionsMap: ReadonlyMap<InjectIndex, InjectOptions<any>>; /** * Inject metadata map. * * @type {ReadonlyMap<InjectIndex, InjectMetadata<TObject, any>>} */ readonly injectMetadataMap: ReadonlyMap<InjectIndex, InjectMetadata<TObject, any>>; } //# sourceMappingURL=type-state.d.ts.map