Allow undefined values in simple objects.

This commit is contained in:
Madeorsk 2024-09-28 17:18:12 +02:00
parent b6411c9401
commit 1641bb19dc
Signed by: Madeorsk
GPG key ID: 677E51CA765BB79F
2 changed files with 5 additions and 5 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "@sharkitek/core", "name": "@sharkitek/core",
"version": "2.1.0", "version": "2.1.1",
"description": "Sharkitek core models library.", "description": "Sharkitek core models library.",
"keywords": [ "keywords": [
"sharkitek", "sharkitek",

View file

@ -24,7 +24,7 @@ export class ObjectType<Keys extends symbol|string> extends Type<Record<Keys, an
// For each defined field, deserialize its value according to its type. // For each defined field, deserialize its value according to its type.
(Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).map(([fieldName, fieldDefinition]) => ( (Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).map(([fieldName, fieldDefinition]) => (
// Return an entry with the current field name and the deserialized value. // Return an entry with the current field name and the deserialized value.
[fieldName, fieldDefinition.type.deserialize(value[fieldName])] [fieldName, fieldDefinition.type.deserialize(value?.[fieldName])]
)) ))
) as Record<Keys, any>; ) as Record<Keys, any>;
} }
@ -38,7 +38,7 @@ export class ObjectType<Keys extends symbol|string> extends Type<Record<Keys, an
// For each defined field, serialize its value according to its type. // For each defined field, serialize its value according to its type.
(Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).map(([fieldName, fieldDefinition]) => ( (Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).map(([fieldName, fieldDefinition]) => (
// Return an entry with the current field name and the serialized value. // Return an entry with the current field name and the serialized value.
[fieldName, fieldDefinition.type.serialize(value[fieldName])] [fieldName, fieldDefinition.type.serialize(value?.[fieldName])]
)) ))
) as Record<Keys, any>; ) as Record<Keys, any>;
} }
@ -52,7 +52,7 @@ export class ObjectType<Keys extends symbol|string> extends Type<Record<Keys, an
// For each defined field, serialize its diff value according to its type. // For each defined field, serialize its diff value according to its type.
(Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).map(([fieldName, fieldDefinition]) => ( (Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).map(([fieldName, fieldDefinition]) => (
// Return an entry with the current field name and the serialized diff value. // Return an entry with the current field name and the serialized diff value.
[fieldName, fieldDefinition.type.serializeDiff(value[fieldName])] [fieldName, fieldDefinition.type.serializeDiff(value?.[fieldName])]
)) ))
) as Record<Keys, any>; ) as Record<Keys, any>;
} }
@ -62,7 +62,7 @@ export class ObjectType<Keys extends symbol|string> extends Type<Record<Keys, an
// For each field, reset its diff. // For each field, reset its diff.
(Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).forEach(([fieldName, fieldDefinition]) => { (Object.entries(this.fieldsTypes) as [Keys, Definition<any, any>][]).forEach(([fieldName, fieldDefinition]) => {
// Reset diff of the current field. // Reset diff of the current field.
fieldDefinition.type.resetDiff(value[fieldName]); fieldDefinition.type.resetDiff(value?.[fieldName]);
}); });
} }
} }