Interface: ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, THasSetter, TFromSnapshotOverride, TToSnapshotOverride>
A model property.
Type Parameters
| Type Parameter | Default type |
|---|---|
TPropValue | - |
TPropCreationValue | - |
TTransformedValue | - |
TTransformedCreationValue | - |
TIsRequired | - |
TIsId extends boolean | false |
THasSetter | never |
TFromSnapshotOverride | never |
TToSnapshotOverride | never |
Properties
_defaultFn
_defaultFn: (() => TPropValue) | typeof noDefaultValue;
_defaultValue
_defaultValue: TPropValue | typeof noDefaultValue;
_defaultValueIsTransformed
_defaultValueIsTransformed: boolean;
_fromSnapshotProcessor?
optional _fromSnapshotProcessor?: (sn) => unknown;
Parameters
| Parameter | Type |
|---|---|
sn | unknown |
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
| Parameter | Type |
|---|---|
sn | unknown |
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
| Parameter | Type |
|---|---|
valueTransform | ModelPropSetterValueTransform<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
| Parameter | Type |
|---|---|
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 Parameter | Default type |
|---|---|
FS | TFromSnapshotOverride |
TS | TToSnapshotOverride |
This extends AnyModelProp | ModelProp<TPropValue, TPropCreationValue, TTransformedValue, TTransformedCreationValue, TIsRequired, TIsId, THasSetter, TFromSnapshotOverride, TToSnapshotOverride> |
Parameters
| Parameter | Type |
|---|---|
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 Parameter | Description |
|---|---|
TTV | Transformed value type. |
Parameters
| Parameter | Type | Description |
|---|---|---|
transform | ModelPropTransform<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.