Skip to main content

Interface: ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, THasSetter, TFromSnapshotOverride, TToSnapshotOverride>

A model property.

Type Parameters​

Type ParameterDefault type
TPropValue-
TPropCreationValue-
TTransformedValue-
TTransformedCreationValue-
TIsRequired-
TIsId extends booleanfalse
THasSetternever
TFromSnapshotOverridenever
TToSnapshotOverridenever

Properties​

_defaultFn​

_defaultFn: (() => TPropValue) | typeof noDefaultValue;

_defaultValue​

_defaultValue: TPropValue | typeof noDefaultValue;

_defaultValueIsTransformed​

_defaultValueIsTransformed: boolean;

_fromSnapshotProcessor?​

optional _fromSnapshotProcessor?: (sn) => unknown;

Parameters​

ParameterType
snunknown

Returns​

unknown


_getDefaultValueIsTransformed?​

optional _getDefaultValueIsTransformed?: () => boolean;

Returns​

boolean


_getFromSnapshotProcessor?​

optional _getFromSnapshotProcessor?: () => ((sn) => unknown) | undefined;

Returns​

((sn) => unknown) | undefined


_getToSnapshotProcessor?​

optional _getToSnapshotProcessor?: () => ((sn) => unknown) | undefined;

Returns​

((sn) => unknown) | undefined


_getTransform?​

optional _getTransform?: () => FullModelPropTransform | undefined;

Returns​

FullModelPropTransform | undefined


_idGenerator?​

optional _idGenerator?: () => string;

Returns​

string


_isId​

_isId: boolean;

_setter​

_setter: SetterMode;

_setterValueTransform​

_setterValueTransform: ((value) => unknown) | undefined;

_toSnapshotProcessor?​

optional _toSnapshotProcessor?: (sn) => unknown;

Parameters​

ParameterType
snunknown

Returns​

unknown


_transform​

_transform: FullModelPropTransform | undefined;

_typeChecker​

_typeChecker: AnyStandardType | undefined;

$creationValueType​

$creationValueType: TPropCreationValue;

$fromSnapshotOverride​

$fromSnapshotOverride: TFromSnapshotOverride;

$hasSetter​

$hasSetter: THasSetter;

$isId​

$isId: TIsId;

$isRequired​

$isRequired: TIsRequired;

$toSnapshotOverride​

$toSnapshotOverride: TToSnapshotOverride;

$transformedCreationValueType​

$transformedCreationValueType: TTransformedCreationValue;

$transformedValueType​

$transformedValueType: TTransformedValue;

$valueType​

$valueType: TPropValue;

Methods​

withSetter()​

Call Signature​

withSetter(): ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, string, TFromSnapshotOverride, TToSnapshotOverride>;

Adds a setter to the property. The setter will be named set${CapitalizedPropName} and will be available in the model instance.

Returns​

ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, string, TFromSnapshotOverride, TToSnapshotOverride>

Call Signature​

withSetter(valueTransform): ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, string, TFromSnapshotOverride, TToSnapshotOverride>;

Adds a setter with a transform to the property. The setter will be named set${CapitalizedPropName} and will be available in the model instance.

Parameters​
ParameterType
valueTransformModelPropSetterValueTransform<TTransformedValue>
Returns​

ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, string, TFromSnapshotOverride, TToSnapshotOverride>

Call Signature​

withSetter(mode): ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, string, TFromSnapshotOverride, TToSnapshotOverride>;
Parameters​
ParameterType
mode"assign"
Returns​

ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, string, TFromSnapshotOverride, TToSnapshotOverride>

Deprecated​

Setter methods are preferred.


withSnapshotProcessor()​

withSnapshotProcessor<FS, TS, This>(processor): ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, THasSetter, FS, TS>;

Sets snapshot processors for this property.

fromSnapshot runs before assigning snapshot data into the model prop. toSnapshot runs when exporting model data back to snapshot form. Both processors must be pure and deterministic, and their canonical output must round-trip to the same stored value. Reconciliation and snapshot generation may skip calls when that canonical snapshot is already current.

Type Parameters​

Type ParameterDefault type
FSTFromSnapshotOverride
TSTToSnapshotOverride
This extends AnyModelPropModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, THasSetter, TFromSnapshotOverride, TToSnapshotOverride>

Parameters​

ParameterType
processor{ fromSnapshot?: (sn) => IsNeverType<ModelPropFromSnapshotOverride<This>>; toSnapshot?: (sn) => TS; }
processor.fromSnapshot?(sn) => IsNeverType<ModelPropFromSnapshotOverride<This>>
processor.toSnapshot?(sn) => TS

Returns​

ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, THasSetter, FS, TS>


withTransform()​

withTransform<TTV>(transform): ModelProp<TPropValue, TPropCreationValue, TTV | Extract<TPropValue, null | undefined>, TTV | Extract<TPropCreationValue, null | undefined>, TIsRequired, TIsId, THasSetter, TFromSnapshotOverride, TToSnapshotOverride>;

Sets a transform for the property instance value.

Type Parameters​

Type ParameterDescription
TTVTransformed value type.

Parameters​

ParameterTypeDescription
transformModelPropTransform<NonNullable<TPropValue>, TTV>Transform to be used.

Returns​

ModelProp<TPropValue, TPropCreationValue, TTV | Extract<TPropValue, null | undefined>, TTV | Extract<TPropCreationValue, null | undefined>, TIsRequired, TIsId, THasSetter, TFromSnapshotOverride, TToSnapshotOverride>

Deprecated​

Prefer using tProp(types.codec(...)) or one of the built-in codec types (e.g. types.dateAsTimestamp, types.bigint, types.mapFromObject(...)) instead. Wrap with types.skipCheck(...) if you don't need runtime validation. Use .withTransform(...) only for one-off custom transforms without a codec equivalent.