@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
149 lines • 4.04 kB
TypeScript
import { Alias } from './alias';
import { CustomKey } from './custom-key';
import { CustomValue } from './custom-value';
import { DefaultValueResolver } from './default-value-resolver';
import { GenericArgument } from './generic-argument';
import { GenericMetadata } from './generic-metadata';
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 { ReferenceHandler } from './reference-handler';
import { Serializer } from './serializer';
import { TypeArgument } from './type-argument';
import { TypeMetadata } from './type-metadata';
/**
* Represents a property state at a certain moment in time.
*
* @type {PropertyState<TDeclaringObject, TObject>}
*/
export interface PropertyState<TDeclaringObject, TObject> {
/**
* Property metadata for which state is defined.
*
* @type {PropertyMetadata<TDeclaringObject, TObject>}
*/
readonly propertyMetadata: PropertyMetadata<TDeclaringObject, 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 resolver.
*
* @type {DefaultValueResolver}
*/
readonly serializedDefaultValueResolver: DefaultValueResolver;
/**
* Deserialized null value resolver.
*
* @type {NullValueResolver}
*/
readonly deserializedNullValueResolver: NullValueResolver;
/**
* Deserialized default value resolver.
*
* @type {DefaultValueResolver}
*/
readonly deserializedDefaultValueResolver: DefaultValueResolver;
/**
* Serialized property name.
*
* @type {PropertyName}
*/
readonly serializedPropertyName: PropertyName;
/**
* Deserialized property name.
*
* @type {PropertyName}
*/
readonly deserializedPropertyName: PropertyName;
/**
* Serializable value.
*
* @type {boolean}
*/
readonly serializable: boolean;
/**
* Deserializable value.
*
* @type {boolean}
*/
readonly deserializable: boolean;
/**
* Generic arguments.
*
* @type {ReadonlyArray<GenericArgument<any>>}
*/
readonly genericArguments: ReadonlyArray<GenericArgument<any>>;
/**
* Generic metadatas.
*
* @type {ReadonlyArray<GenericMetadata<any>>}
*/
readonly genericMetadatas: ReadonlyArray<GenericMetadata<any>>;
/**
* Naming convention.
*
* @type {Optional<NamingConvention>}
*/
readonly namingConvention: Optional<NamingConvention>;
/**
* Reference handler.
*
* @type {ReferenceHandler}
*/
readonly referenceHandler: ReferenceHandler;
/**
* Serializer.
*
* @type {Serializer<TObject>}
*/
readonly serializer: Serializer<TObject>;
/**
* Type argument.
*
* @type {TypeArgument<TObject>}
*/
readonly typeArgument: TypeArgument<TObject>;
/**
* Type metadata.
*
* @type {TypeMetadata<TObject>}
*/
readonly typeMetadata: TypeMetadata<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;
}
//# sourceMappingURL=property-state.d.ts.map