UNPKG

@dcl/ecs

Version:
31 lines (30 loc) 723 B
/** * @internal */ export const IOptional = (spec) => { return { serialize(value, builder) { if (value) { builder.writeInt8(1); spec.serialize(value, builder); } else { builder.writeInt8(0); } }, deserialize(reader) { const exists = reader.readInt8(); if (exists) { return spec.deserialize(reader); } }, create() { return undefined; }, jsonSchema: { type: spec.jsonSchema.type, serializationType: 'optional', optionalJsonSchema: spec.jsonSchema } }; };